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.2";
public static TKGNativeInterface Instance
{
get
{
if (_instance == null)
{
#if UNITY_EDITOR || UNITY_STANDLONE
_instance = new TKGNativeInterfaceWebgl();
#elif UNITY_ANDROID
#if H5_DY
_instance = new TKGNativeInterfaceWebgl();
#else
_instance = new TKGNativeInterfaceAndroid();
#endif
#elif UNITY_IOS
_instance = new TKGNativeInterfaceIOS();
#elif UNITY_WEBGL
_instance = new TKGNativeInterfaceWebgl();
#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);
///
/// 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);
#endregion
}
}