571 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			571 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			C#
		
	
	
	
|  | #if UNITY_IOS | |||
|  | using System.Collections; | |||
|  | using System.Collections.Generic; | |||
|  | using UnityEngine; | |||
|  | using System.Runtime.InteropServices; | |||
|  | using System; | |||
|  | using Touka; | |||
|  | using System.Text; | |||
|  | 
 | |||
|  | public class TGiOSAdManager : MonoBehaviour | |||
|  | { | |||
|  | 
 | |||
|  |     private static TGiOSAdManager s_instance; | |||
|  | 
 | |||
|  |     public Action onAntiSuccessHander; | |||
|  |     private System.Action<bool, string> m_userSourceCallback; | |||
|  | 
 | |||
|  |     public static TGiOSAdManager Instance | |||
|  |     { | |||
|  |         get | |||
|  |         { | |||
|  |             if (s_instance == null) | |||
|  |             { | |||
|  |                 GameObject TGGameObject = new GameObject | |||
|  |                 { | |||
|  |                     name = "AdObject" | |||
|  |                 }; | |||
|  |                 s_instance = TGGameObject.AddComponent<TGiOSAdManager>(); | |||
|  |                 DontDestroyOnLoad(TGGameObject); | |||
|  |             } | |||
|  |             return s_instance; | |||
|  |         } | |||
|  |     } | |||
|  | 
 | |||
|  | 
 | |||
|  |     public void InitSDK() | |||
|  |     { | |||
|  |         // 暂停恢复声音 | |||
|  |         pauseGameDelegate handler = new pauseGameDelegate(pauseGameHandle); | |||
|  |         IntPtr pauseGame = Marshal.GetFunctionPointerForDelegate(handler); | |||
|  |         pauseGameCallback(pauseGame); | |||
|  | 
 | |||
|  |         // 初始化设置 | |||
|  |         initSDKDelegate inithandler = new initSDKDelegate(initSDKHandle); | |||
|  |         IntPtr initSdk = Marshal.GetFunctionPointerForDelegate(inithandler); | |||
|  |         initSDKCallback(initSdk); | |||
|  | 
 | |||
|  |         // 用户来源设置 | |||
|  |         TKG_UsersourceDelegate usHandler = new TKG_UsersourceDelegate(userSourceHandle); | |||
|  |         IntPtr us = Marshal.GetFunctionPointerForDelegate(usHandler); | |||
|  |         userSourceCallback(us); | |||
|  | 
 | |||
|  |         // rv close  | |||
|  |         rewardCloseDelegate rvCloseHandler = new rewardCloseDelegate(rewardAdCloseHandle); | |||
|  |         IntPtr rewardClose = Marshal.GetFunctionPointerForDelegate(rvCloseHandler); | |||
|  |         rewardAdCloseCallback(rewardClose); | |||
|  | 
 | |||
|  |         // show fail | |||
|  |         rewardShowFailDelegate rvfailHandler = new rewardShowFailDelegate(rewardAdShowFailHandle); | |||
|  |         IntPtr rewardShowFail = Marshal.GetFunctionPointerForDelegate(rvfailHandler); | |||
|  |         rewardAdShowFailCallback(rewardShowFail); | |||
|  | 
 | |||
|  |         // iv close | |||
|  |         interCloseDelegate ivCloseHandler = new interCloseDelegate(interAdCloseHandle); | |||
|  |         IntPtr interClose = Marshal.GetFunctionPointerForDelegate(ivCloseHandler); | |||
|  |         interAdCloseCallback(interClose); | |||
|  | 
 | |||
|  |         // rv click | |||
|  |         rewardClickDelegate rvClickHandler = new rewardClickDelegate(rewardAdClickHandle); | |||
|  |         IntPtr rvClick = Marshal.GetFunctionPointerForDelegate(rvClickHandler); | |||
|  |         rewardAdClickCallback(rvClick); | |||
|  | 
 | |||
|  |         TKG_InitSDK(); | |||
|  | 
 | |||
|  |     } | |||
|  | 
 | |||
|  |     // 通知 | |||
|  |     public void registAPNS() | |||
|  |     { | |||
|  |         TKG_RegistAPNS(); | |||
|  |     } | |||
|  | 
 | |||
|  |     public void registNotification(string notiId, string body, string fireDate, int badge, string title, string subTitle) | |||
|  |     { | |||
|  |         TKG_RegistNotification(notiId,body,fireDate,badge,title,subTitle); | |||
|  |     } | |||
|  | 
 | |||
|  |     public void removeNotification(string notiId) | |||
|  |     { | |||
|  |         TKG_RemoveNotification(notiId); | |||
|  |     } | |||
|  | 
 | |||
|  |     public void removeAllNotifications() | |||
|  |     { | |||
|  |         TKG_RemoveAllNotification(); | |||
|  |     } | |||
|  |     // 震动 | |||
|  |     public void shake(int mType, float mIntensity = 1) | |||
|  |     { | |||
|  |         TKG_Shake(mType,mIntensity); | |||
|  |     } | |||
|  | 
 | |||
|  |     // ads | |||
|  | 
 | |||
|  |     public void RemoveAllAds() | |||
|  |     { | |||
|  |         TKG_RemoveAds(); | |||
|  |     } | |||
|  | 
 | |||
|  |     //banner | |||
|  |     public void LoadBanner() | |||
|  |     { | |||
|  |         TKG_LoadBanner(); | |||
|  |     } | |||
|  | 
 | |||
|  |     public bool IsReadyBanner() | |||
|  |     { | |||
|  |         return TKG_IsReadyBanner(); | |||
|  |     } | |||
|  | 
 | |||
|  |     public void ShowBanner(int align) | |||
|  |     { | |||
|  |         TKG_ShowBanner(align); | |||
|  |     } | |||
|  | 
 | |||
|  |     public void HideBanner() | |||
|  |     { | |||
|  |         TKG_HideBanner(); | |||
|  |     } | |||
|  | 
 | |||
|  |     // iv | |||
|  |     public void LoadIntersititial() | |||
|  |     { | |||
|  |         TKG_LoadIntersititial(); | |||
|  |     } | |||
|  | 
 | |||
|  |     public bool IsReadyIntersititial() | |||
|  |     { | |||
|  |         return TKG_IsReadyIntersititial(); | |||
|  |     } | |||
|  | 
 | |||
|  |     public void ShowIntersititial(string _adPos, int ivType) | |||
|  |     { | |||
|  |         TKG_ShowIntersititial(_adPos,ivType); | |||
|  |     } | |||
|  | 
 | |||
|  |     // rv | |||
|  |     public void LoadRewardVideo() | |||
|  |     { | |||
|  |         TKG_LoadRewardVideo(); | |||
|  |     } | |||
|  | 
 | |||
|  |     public bool IsReadyRewardVideo() | |||
|  |     { | |||
|  |         return TKG_IsReadyRewardVideo(); | |||
|  |     } | |||
|  | 
 | |||
|  |     public void ShowRewardVideo(string adPos) | |||
|  |     { | |||
|  |          | |||
|  |         TKG_ShowRewardVideo(adPos); | |||
|  |     } | |||
|  | 
 | |||
|  |     // native | |||
|  |     public void LoadNative(float width, float height) | |||
|  |     { | |||
|  |         TKG_LoadNative(width, height); | |||
|  |     } | |||
|  | 
 | |||
|  |     public bool IsReadyNative() | |||
|  |     { | |||
|  |         return TKG_IsReadyNative(); | |||
|  |     } | |||
|  | 
 | |||
|  |     public void ShowNative(RectTransform pRect, Camera pCam = null, string pAdPos = "") | |||
|  |     { | |||
|  |         TKG_TurnNativePosition(pRect, pCam, pAdPos); | |||
|  |     } | |||
|  | 
 | |||
|  |     public void RemoveNative() | |||
|  |     { | |||
|  |         TKG_RemoveNative(); | |||
|  |     } | |||
|  | 
 | |||
|  |     // other  | |||
|  |     public void Review() | |||
|  |     { | |||
|  |         TKG_Review(); | |||
|  |     } | |||
|  | 
 | |||
|  |     public void OpenPrivacyURL() | |||
|  |     { | |||
|  |         TKG_OpenPrivacyURL(); | |||
|  |     } | |||
|  | 
 | |||
|  |     public void OpenUserTermURL() | |||
|  |     { | |||
|  |         TKG_OpenUserTermURL(); | |||
|  |     } | |||
|  | 
 | |||
|  |     public void OpenPolicyPop() | |||
|  |     { | |||
|  |         TKG_OpenPolicyPop(); | |||
|  |     } | |||
|  |     public void OpenMoreGame() | |||
|  |     { | |||
|  |         TKG_OpenMoreGame(); | |||
|  |     } | |||
|  | 
 | |||
|  | 
 | |||
|  |     // 在线参数 | |||
|  |     public int GetConfigInt(string key, int defaultValue) | |||
|  |     { | |||
|  |         return TKG_GetConfigInt(key, defaultValue); | |||
|  |     } | |||
|  | 
 | |||
|  |     public string GetConfigString(string key, string defaultValue) | |||
|  |     { | |||
|  |         return TKG_GetConfigString(key, defaultValue); | |||
|  |     } | |||
|  | 
 | |||
|  |     public bool GetConfigBool(string key, bool defaultValue) | |||
|  |     { | |||
|  |         return TKG_GetConfigBool(key, defaultValue); | |||
|  |     } | |||
|  | 
 | |||
|  |     // 游戏事件上报 | |||
|  |     public void onEvent_GameStart(string levelId) | |||
|  |     { | |||
|  |         TKG_OnEvent_GameStart(levelId); | |||
|  |     } | |||
|  | 
 | |||
|  |     public void onEvent_GameEnd(string levelId, int result) | |||
|  |     { | |||
|  |         TKG_OnEvent_GameEnd(levelId,result); | |||
|  |     } | |||
|  | 
 | |||
|  |     // umeng 事件上报 | |||
|  |     public void onEvent_UMeng(string eventSort) | |||
|  |     { | |||
|  |         TKG_OnEvent_UMeng1(eventSort); | |||
|  |     } | |||
|  | 
 | |||
|  |     public void onEvent_UMeng(string eventSort, Dictionary<string, string> _keyValues) | |||
|  |     { | |||
|  |         TKG_OnEvent_UMeng2(eventSort, TKG_DictionaryToJson(_keyValues)); | |||
|  |     } | |||
|  | 
 | |||
|  |     public void onEvent_UMeng(string eventSort,string key,string value) | |||
|  |     { | |||
|  |         TKG_OnEvent_UMeng3(eventSort,key,value); | |||
|  |     } | |||
|  | 
 | |||
|  |     public void onEvent_UMeng(string eventSort, string key1, string value1,string key2,string value2) | |||
|  |     { | |||
|  |         TKG_OnEvent_UMeng4(eventSort, key1, value1,key2,value2); | |||
|  |     } | |||
|  | 
 | |||
|  |     // tenjin事件上报 | |||
|  |     public void onEvent_Tenjin(int eventType) | |||
|  |     { | |||
|  |         TKG_OnEvent_Tenjin(eventType); | |||
|  |     } | |||
|  | 
 | |||
|  |     // unity 字典转 json string | |||
|  |     static string TKG_DictionaryToJson(Dictionary<string, string> dict) | |||
|  |     { | |||
|  | 
 | |||
|  |         var builder = new StringBuilder("{"); | |||
|  |         foreach (KeyValuePair<string, string> kv in dict) | |||
|  |         { | |||
|  |             builder.AppendFormat("\"{0}\":\"{1}\",", kv.Key, kv.Value); | |||
|  |         } | |||
|  |         builder[builder.Length - 1] = '}'; | |||
|  |         return builder.ToString(); | |||
|  |     } | |||
|  | 
 | |||
|  |     // 坐标转换 | |||
|  |     public void TKG_TurnNativePosition(RectTransform pRect, Camera pCam = null, string pAdPos = "") | |||
|  |     { | |||
|  |         Vector3[] tWorldCorners = new Vector3[4]; | |||
|  |         pRect.GetWorldCorners(tWorldCorners); | |||
|  | 
 | |||
|  |         Vector2 tTopLeft = RectTransformUtility.WorldToScreenPoint(pCam, tWorldCorners[1]); | |||
|  |         Vector2 tBottomRight = RectTransformUtility.WorldToScreenPoint(pCam, tWorldCorners[3]); | |||
|  |         float tWidth = Mathf.Abs(tBottomRight.x - tTopLeft.x); | |||
|  |         float tHeight = Mathf.Abs(tBottomRight.y - tTopLeft.y); | |||
|  |         //Debug.Log("x:" + tTopLeft.x + "y:" + (Screen.height - tTopLeft.y) + "width" + tWidth + "hei:" + tHeight); | |||
|  | 
 | |||
|  |         TKG_ShowNative(tTopLeft.x, Screen.height - tTopLeft.y, tWidth, tHeight, pAdPos); | |||
|  |     } | |||
|  | 
 | |||
|  |     // callback  | |||
|  |     // iv  callback | |||
|  |     [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |||
|  |     public delegate void interCloseDelegate(); | |||
|  |     [AOT.MonoPInvokeCallback(typeof(interCloseDelegate))] | |||
|  |     static void interAdCloseHandle() | |||
|  |     { | |||
|  |         if (TKGSDKCallback.mInterAdCallback != null) | |||
|  |         { | |||
|  |             TKGSDKCallback.mInterAdCallback.Invoke(); | |||
|  |             TKGSDKCallback.mInterAdCallback = null; | |||
|  |         } | |||
|  |     } | |||
|  | 
 | |||
|  |     // rv close-reward callback | |||
|  |     [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |||
|  |     public delegate void rewardCloseDelegate(bool isReward); | |||
|  |     [AOT.MonoPInvokeCallback(typeof(rewardCloseDelegate))] | |||
|  |     static void rewardAdCloseHandle(bool isReward) | |||
|  |     { | |||
|  |         if (isReward) | |||
|  |         { | |||
|  |             if (TKGSDKCallback.mRewardCallback != null) | |||
|  |             { | |||
|  |                 TKGSDKCallback.mRewardCallback.Invoke(true); | |||
|  |                 TKGSDKCallback.mRewardCallback = null; | |||
|  |             } | |||
|  |         } | |||
|  |         else | |||
|  |         { | |||
|  |             if (TKGSDKCallback.mRewardCallback != null) | |||
|  |             { | |||
|  |                 TKGSDKCallback.mRewardCallback.Invoke(false); | |||
|  |                 TKGSDKCallback.mRewardCallback = null; | |||
|  |             } | |||
|  |         } | |||
|  |     } | |||
|  | 
 | |||
|  |     // rv show fail callback | |||
|  |     [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |||
|  |     public delegate void rewardShowFailDelegate(); | |||
|  |     [AOT.MonoPInvokeCallback(typeof(rewardShowFailDelegate))] | |||
|  |     static void rewardAdShowFailHandle() | |||
|  |     { | |||
|  |         if (TKGSDKCallback.mRewardShowFailedCallback != null) | |||
|  |         { | |||
|  |             TKGSDKCallback.mRewardShowFailedCallback(); | |||
|  |             TKGSDKCallback.mRewardShowFailedCallback = null; | |||
|  |         } | |||
|  |     } | |||
|  | 
 | |||
|  |     // rv click callback | |||
|  |     [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |||
|  |     public delegate void rewardClickDelegate(); | |||
|  |     [AOT.MonoPInvokeCallback(typeof(rewardClickDelegate))] | |||
|  |     static void rewardAdClickHandle() | |||
|  |     { | |||
|  |         if (TKGSDKCallback.mRewardClickCallback != null) | |||
|  |         { | |||
|  |             TKGSDKCallback.mRewardClickCallback(); | |||
|  |         } | |||
|  |     } | |||
|  | 
 | |||
|  |     // pause game | |||
|  |     [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |||
|  |     public delegate void pauseGameDelegate(bool m_pause); | |||
|  |     [AOT.MonoPInvokeCallback(typeof(pauseGameDelegate))] | |||
|  |     static void pauseGameHandle(bool m_pause) | |||
|  |     { | |||
|  |         TKGSDKCallback.mGameFocusCallback?.Invoke(!m_pause); | |||
|  |     } | |||
|  | 
 | |||
|  |     // init sdk | |||
|  |     [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |||
|  |     public delegate void initSDKDelegate(); | |||
|  |     [AOT.MonoPInvokeCallback(typeof(initSDKDelegate))] | |||
|  |     static void initSDKHandle() | |||
|  |     { | |||
|  |         if (TKGSDKCallback.mInitCallback != null) | |||
|  |         { | |||
|  |             TKGSDKCallback.mInitCallback(); | |||
|  |             TKGSDKCallback.mInitCallback = null; | |||
|  |         } | |||
|  |     } | |||
|  | 
 | |||
|  |     // user source | |||
|  |     [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |||
|  |     public delegate void TKG_UsersourceDelegate(bool isOrganic,string source); | |||
|  |     [AOT.MonoPInvokeCallback(typeof(TKG_UsersourceDelegate))] | |||
|  |     static void userSourceHandle(bool isOrganic, string source) | |||
|  |     { | |||
|  |         if (TKGSDKCallback.mTKGUserSourceCallback != null) | |||
|  |         { | |||
|  |             TKGSDKCallback.mTKGUserSourceCallback(isOrganic,source); | |||
|  |             TKGSDKCallback.mTKGUserSourceCallback = null; | |||
|  |         } | |||
|  |     } | |||
|  | 
 | |||
|  |     // dll | |||
|  |     [DllImport("__Internal")] | |||
|  |     private static extern void TKG_Shake(int mType, float mIntensity); | |||
|  | 
 | |||
|  |     [DllImport("__Internal")] | |||
|  |     private static extern void TKG_InitSDK(); | |||
|  | 
 | |||
|  |     // event umeng | |||
|  |     [DllImport("__Internal")] | |||
|  |     private static extern void TKG_OnEvent_UMeng1(string s1); | |||
|  | 
 | |||
|  |     [DllImport("__Internal")] | |||
|  |     private static extern void TKG_OnEvent_UMeng2(string s1, string s2); | |||
|  | 
 | |||
|  |     [DllImport("__Internal")] | |||
|  |     private static extern void TKG_OnEvent_UMeng3(string s1, string key, string value); | |||
|  | 
 | |||
|  |     [DllImport("__Internal")] | |||
|  |     private static extern void TKG_OnEvent_UMeng4(string s1, string key1, string value1, string key2, string value2); | |||
|  | 
 | |||
|  |     // event tenjin | |||
|  |     [DllImport("__Internal")] | |||
|  |     private static extern void TKG_OnEvent_Tenjin(int eventType); | |||
|  | 
 | |||
|  |     // event game | |||
|  |     [DllImport("__Internal")] | |||
|  |     private static extern void TKG_OnEvent_GameStart(string levelId); | |||
|  |     [DllImport("__Internal")] | |||
|  |     private static extern void TKG_OnEvent_GameEnd(string levelId, int result); | |||
|  | 
 | |||
|  |     // other | |||
|  |     [DllImport("__Internal")] | |||
|  |     private static extern void TKG_Review(); | |||
|  | 
 | |||
|  |     [DllImport("__Internal")] | |||
|  |     private static extern void TKG_OpenPrivacyURL(); | |||
|  | 
 | |||
|  |     [DllImport("__Internal")] | |||
|  |     private static extern void TKG_OpenUserTermURL(); | |||
|  | 
 | |||
|  |     [DllImport("__Internal")] | |||
|  |     private static extern void TKG_OpenPolicyPop(); | |||
|  | 
 | |||
|  |     [DllImport("__Internal")] | |||
|  |     private static extern void TKG_OpenMoreGame(); | |||
|  | 
 | |||
|  |     // ads | |||
|  |     [DllImport("__Internal")] | |||
|  |     private static extern void TKG_LoadBanner(); | |||
|  | 
 | |||
|  |     [DllImport("__Internal")] | |||
|  |     private static extern bool TKG_IsReadyBanner(); | |||
|  | 
 | |||
|  |     [DllImport("__Internal")] | |||
|  |     private static extern void TKG_ShowBanner(int align); | |||
|  | 
 | |||
|  |     [DllImport("__Internal")] | |||
|  |     private static extern void TKG_HideBanner(); | |||
|  | 
 | |||
|  |     [DllImport("__Internal")] | |||
|  |     private static extern void TKG_LoadIntersititial(); | |||
|  | 
 | |||
|  |     [DllImport("__Internal")] | |||
|  |     private static extern bool TKG_IsReadyIntersititial(); | |||
|  | 
 | |||
|  |     [DllImport("__Internal")] | |||
|  |     private static extern void TKG_ShowIntersititial(string adPos,int ivType); | |||
|  | 
 | |||
|  |     [DllImport("__Internal")] | |||
|  |     private static extern void TKG_LoadRewardVideo(); | |||
|  | 
 | |||
|  |     [DllImport("__Internal")] | |||
|  |     private static extern bool TKG_IsReadyRewardVideo(); | |||
|  | 
 | |||
|  |     [DllImport("__Internal")] | |||
|  |     private static extern void TKG_ShowRewardVideo(string adPos); | |||
|  | 
 | |||
|  |     [DllImport("__Internal")] | |||
|  |     private static extern void TKG_LoadNative(float width, float height); | |||
|  | 
 | |||
|  |     [DllImport("__Internal")] | |||
|  |     private static extern bool TKG_IsReadyNative(); | |||
|  | 
 | |||
|  |     [DllImport("__Internal")] | |||
|  |     private static extern void TKG_ShowNative(float x, float y, float w, float h, string adPos); | |||
|  | 
 | |||
|  |     [DllImport("__Internal")] | |||
|  |     private static extern void TKG_RemoveNative(); | |||
|  | 
 | |||
|  |     // remote config | |||
|  |     [DllImport("__Internal")] | |||
|  |     private static extern int TKG_GetConfigInt(string key, int defaultValue); | |||
|  | 
 | |||
|  |     [DllImport("__Internal")] | |||
|  |     private static extern string TKG_GetConfigString(string key, string defaultValue); | |||
|  | 
 | |||
|  |     [DllImport("__Internal")] | |||
|  |     private static extern bool TKG_GetConfigBool(string key, bool defaultValue); | |||
|  | 
 | |||
|  |     [DllImport("__Internal")] | |||
|  |     private static extern bool TKG_SetLogged(bool enable); | |||
|  | 
 | |||
|  |     [DllImport("__Internal")] | |||
|  |     private static extern bool TKG_RemoveAds(); | |||
|  | 
 | |||
|  |     // callback | |||
|  |     // iv close | |||
|  |     [DllImport("__Internal")] | |||
|  |     public static extern void interAdCloseCallback( | |||
|  |         IntPtr interClose | |||
|  |     ); | |||
|  | 
 | |||
|  |     // rv close | |||
|  |     [DllImport("__Internal")] | |||
|  |     public static extern void rewardAdCloseCallback( | |||
|  |         IntPtr rewardClose | |||
|  |     ); | |||
|  | 
 | |||
|  |     // rv click | |||
|  |     [DllImport("__Internal")] | |||
|  |     public static extern void rewardAdClickCallback( | |||
|  |         IntPtr rewardClick | |||
|  |     ); | |||
|  | 
 | |||
|  |     // rv show fail | |||
|  |     [DllImport("__Internal")] | |||
|  |     public static extern void rewardAdShowFailCallback( | |||
|  |         IntPtr rewardShowFail | |||
|  |     ); | |||
|  | 
 | |||
|  |     // pause game | |||
|  |     [DllImport("__Internal")] | |||
|  |     public static extern void pauseGameCallback( | |||
|  |         IntPtr pauseGame | |||
|  |     ); | |||
|  | 
 | |||
|  |     // init sdk | |||
|  |     [DllImport("__Internal")] | |||
|  |     public static extern void initSDKCallback( | |||
|  |         IntPtr initSdk | |||
|  |     ); | |||
|  | 
 | |||
|  |     // user source | |||
|  |     [DllImport("__Internal")] | |||
|  |     public static extern void userSourceCallback( | |||
|  |         IntPtr userSource | |||
|  |     ); | |||
|  | 
 | |||
|  |     // 设置unity版本 | |||
|  |     [DllImport("__Internal")] | |||
|  |     private static extern void TKG_SetUnityVersion(string version); | |||
|  | 
 | |||
|  |     // 通知 | |||
|  |     [DllImport("__Internal")] | |||
|  |     private static extern void TKG_RegistAPNS(); | |||
|  | 
 | |||
|  |     [DllImport("__Internal")] | |||
|  |     private static extern void TKG_RemoveAllNotification(); | |||
|  | 
 | |||
|  |     [DllImport("__Internal")] | |||
|  |     private static extern void TKG_RemoveNotification(string notiId); | |||
|  | 
 | |||
|  |     [DllImport("__Internal")] | |||
|  |     private static extern void TKG_RegistNotification(string notiId, string body, string fireDate, int badge, string title, string subTitle); | |||
|  | 
 | |||
|  |     // ============================ old sdk todo  ======================== | |||
|  | 
 | |||
|  |     //设置log开关 | |||
|  |     public void SetLogEnable(bool enable) | |||
|  |     { | |||
|  |         TKG_SetLogged(enable); | |||
|  |     } | |||
|  | 
 | |||
|  |     public void SetUnitySDKVersion(string version) | |||
|  |     { | |||
|  |         TKG_SetUnityVersion(version); | |||
|  |     } | |||
|  | } | |||
|  | 
 | |||
|  | #endif |