using System; using System.Collections.Generic; using UnityEngine; namespace Touka { /// /// TKG Native SDK interface call /// public abstract class TKGNativeInterface { private static TKGNativeInterface _instance; private string UnitySDKVersion = "2.2.6"; public static TKGNativeInterface Instance { get { if (_instance == null) { #if UNITY_EDITOR || UNITY_STANDLONE _instance = new TKGNativeInterfaceDefault(); #elif UNITY_ANDROID _instance = new TKGNativeInterfaceAndroid(); #elif UNITY_IOS _instance = new TKGNativeInterfaceIOS(); #endif } return _instance; } } /// /// init /// public virtual void Init(Action _initCallback = null) { TKGSDKCallback.SetInitCallback(_initCallback); SetUnitySDKVersion(UnitySDKVersion); } /// /// Set game focus /// /// public virtual void SetGameFocusListener(Action _gameFocusAction) { TKGSDKCallback.SetGameFocusCallback(_gameFocusAction); } public virtual void SetRewardClickListener(Action _rewardClickAction) { TKGSDKCallback.SetRewardClickCallback(_rewardClickAction); } /// /// Get Channel /// /// public abstract string GetChannel(); #region Ads public abstract void PurchasedRemoveAds(); public abstract void SetUnitySDKVersion(string sdkVersion); #region Ads Show public abstract void RemoveNativeAd(); public abstract bool IsReadyNativeAd(); public abstract void ShowNativeAd(RectTransform pRect, Camera pCam = null, string pAdPos = ""); /// /// Show banner Ad /// /// bannerAlign public abstract void showBannerAd(TKGBannerAlign _pos); /// /// Hide Banner Ad /// public abstract void hideBannerAd(); /// /// Show Interstitial Ad /// /// auto log event : iv_ad_show /// public abstract void showInterstitialAd(); /// /// Show Interstitial Ad /// /// auto log event : iv_ad_show & _adPos(eg.stage_end) /// /// public abstract void showInterstitialAd(string _adPos, IVADType _IvType = IVADType.IV1); /// /// Show Reward Ad /// /// /// public abstract void showRewardAd(string _adPos, int _itemCount = -1); public abstract void SetShowSDKToast(bool _useSDKToast); /// /// Show Reward Ad /// /// /// /// public abstract void showRewardAd(string _adPos, int _itemCount, Dictionary _extraEvent); /// /// Show Video Ad /// /// /// public abstract void showVideoAd(string _adPos, int _itemCount = -1); #endregion #region Ads isready /// /// banner isReady /// /// public abstract bool isBannerAdReady(); /// /// Interstitial isReady /// /// public abstract bool isInterstitialAdReady(); /// /// Reward isReady /// /// public abstract bool isRewardAdReady(); /// /// FullScreen isReady /// /// public abstract bool isVideoAdReady(); #endregion #region Set Ads callback /// /// Set Banner Ad Callback /// /// public abstract void SetBannerAdCallback(AndroidBannerADTKGAdCallback _bannerCallback); /// /// Set Interstital Ad Callback /// /// public abstract void setInterstitalAdCallback(AndroidInterADTKGAdCallback _interCallback); /// /// Set reward Ad Callback /// /// public abstract void SetRewardAdCallback(AndroidRewardADTKGAdCallback _rewardCallback); /// /// Set video Ad Callback(full screen ad, reward ad with no reward callback) /// /// public abstract void setVideoAdCallback(AndroidInterADTKGAdCallback _videoCallback); #endregion #region load ads /// /// load interstitial ad /// (retry 3 times, per time interval 10s) /// public abstract void loadInterstitialAD(); /// /// load reward ad /// (retry 3 times, per time interval 10s) /// public abstract void loadRewardAD(); /// /// load video ad /// (retry 3 times, per time interval 10s) /// public abstract void loadVideoAD(); #endregion #endregion #region Log Event #region Normal /// /// onEvent /// /// /// public abstract void onEvent(string _eventName); /// /// onEvent /// /// /// /// /// public abstract void onEvent(string _eventName, string _key01, string _value01); /// /// onEvent /// /// /// /// /// /// /// public abstract void onEvent(string _eventName, string _key01, string _value01, string _key02, string _value02); /// /// onEvent /// /// /// public abstract void onEvent(string _eventName, Dictionary _keyValues); #endregion #region Level Event /// /// Level Start /// /// public abstract void LevelStart(string _levelId); /// /// Level end /// /// /// public abstract void LevelEnd(string _levelId, StageResult _stageResult); #endregion #region Tracking Event /// /// Log Tracking Event /// /// public abstract void LogTrackingEvent(TrackingEventType _eventType); #endregion #endregion #region Online Config /// /// get config - int /// /// /// public abstract int GetConfigInt(string _key, int _default); /// /// get config - string /// /// /// /// public abstract string GetConfigString(string _key, string _default); /// /// get config - bool /// /// /// /// public abstract bool GetConfigBool(string _key, bool _default); #endregion #region Others (Common) /// /// review /// public abstract void Review(); /// /// open Privacy url /// public abstract void OpenPrivacyURL(); /// /// open user term url /// public abstract void OpenUserTermURL(); /// /// open policy pop /// public abstract void OpenPolicyPop(); /// /// More Games /// public abstract void OpenMoreGame(); #endregion #region Others (Uncommon) /// /// shake(no repeat) /// /// shake time public abstract void shake(int _shakeType, float _intensity = 1); /// /// shake(can repeat) /// /// repeat times : -1 /// wait time,shake time(100,1000,100,111) //public abstract void shake(int _repeatTimes, params int[] _shakeTime); /// /// cancel shake /// public abstract void cancelShake(); /// /// Show Tips /// Pop-up prompt (the one with black transparent background) unified style, Chinese, Japanese, Korean and English, support multi-language, multi-language text /// /// game judges different languages ​​by itself and passes different strings /// /// title /// content public abstract void dialogTips(string _titleStr, string _contentStr); /// /// Open ULR by Browser /// /// public abstract void openUrlBrowser(string _url); /// /// Open ULR By WEB POP /// /// public abstract void openWebUrl(string _url); /// /// show Toast /// /// public abstract void toast(string _content); /// /// push message /// public abstract void pushMsg(); /// /// set log enable /// /// public abstract void SetLogEnable(bool _enable); /// /// share txt /// /// public abstract void ShareTxt(string _shareTxt); /// /// regist APNS /// public abstract void RegistAPNS(); /// /// shake /// /// notification identifier /// The body of the notification. /// notify after the time interval. format: yyyy-MM-dd HH:mm:ss /// The application badge number. /// The title of the notification. /// The subtitle of the notification. public abstract void RegistNotification(string notiId, string body, string fireDate, int badge, string title, string subTitle); /// /// remove all notification /// public abstract void RemoveAllNotifications(); /// /// remove notification by notification identifier /// /// notification identifier public abstract void RemoveNotification(string notiId); #endregion #region other callback /// /// set tkg common callback /// public abstract void SetSDKCommonCallback(AndroidTKGCommonCalllback _commonCallback); /// /// set user source callback /// public abstract void SetUserSourceCallback(AndroidTKGUserSourceCalllback _userSourceCallback); /// /// set user source callback with CampaignName /// public abstract void SetUserSourceCallback(AndroidTKGUserSourceCalllbackWithCampaignName _userSourceCallback); #endregion } }