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