mergemilitary/Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGNativeInterface.cs

619 lines
20 KiB
C#
Raw Normal View History

2023-09-12 09:23:21 +00:00
using System;
2022-06-13 07:55:30 +00:00
using System.Collections.Generic;
using UnityEngine;
2022-06-13 07:55:30 +00:00
namespace Touka
{
/// <summary>
/// TKG Native SDK interface call
/// </summary>
public abstract class TKGNativeInterface
{
private static TKGNativeInterface _instance;
2023-09-12 09:23:21 +00:00
private string UnitySDKVersion = "3.1.3";
2022-06-13 07:55:30 +00:00
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;
}
}
/// <summary>
/// init
/// </summary>
public virtual void Init(Action _initCallback = null)
{
TKGSDKCallback.SetInitCallback(_initCallback);
SetUnitySDKVersion(UnitySDKVersion);
2022-06-13 07:55:30 +00:00
}
/// <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);
}
2022-06-13 07:55:30 +00:00
/// <summary>
/// Get Channel
/// </summary>
/// <returns></returns>
public abstract string GetChannel();
#region Ads
public abstract void PurchasedRemoveAds();
public abstract void SetUnitySDKVersion(string sdkVersion);
2022-06-13 07:55:30 +00:00
#region Ads Show
public abstract void RemoveNativeAd();
public abstract bool IsReadyNativeAd();
public abstract void ShowNativeAd(RectTransform pRect, Camera pCam = null, string pAdPos = "");
2022-06-13 07:55:30 +00:00
/// <summary>
/// Show banner Ad
/// </summary>
/// <param name="_bannerAlign">bannerAlign</param>
public abstract void showBannerAd(TKGBannerAlign _pos);
2022-06-13 07:55:30 +00:00
/// <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);
public abstract void SetShowSDKToast(bool _useSDKToast);
2022-06-13 07:55:30 +00:00
/// <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);
#endregion
#region Ads isready
/// <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();
#endregion
#region Set Ads callback
/// <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);
#endregion
#region load ads
/// <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();
#endregion
#endregion
#region Log Event
#region Normal
/// <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);
#endregion
#region Level Event
/// <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-06-13 07:55:30 +00:00
#endregion
#region Tracking Event
/// <summary>
/// Log Tracking Event
/// </summary>
/// <param name="_eventType"></param>
public abstract void LogTrackingEvent(TrackingEventType _eventType);
#endregion
#endregion
#region Online Config
/// <summary>
/// get config - int
/// </summary>
/// <param name="_key"></param>
/// <returns></returns>
public abstract int GetConfigInt(string _key, int _default);
2022-06-13 07:55:30 +00:00
/// <summary>
/// get config - string
/// </summary>
/// <param name="_key"></param>
/// <param name="_defaultValue"></param>
/// <returns></returns>
public abstract string GetConfigString(string _key, string _default);
2022-06-13 07:55:30 +00:00
/// <summary>
/// get config - bool
/// </summary>
/// <param name="_key"></param>
/// <param name="_defaultValue"></param>
/// <returns></returns>
public abstract bool GetConfigBool(string _key, bool _default);
2022-06-13 07:55:30 +00:00
#endregion
#region Others (Common)
/// <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();
2023-09-12 09:23:21 +00:00
/// <summary>
/// if is debug mode
/// </summary>
public abstract bool IsDebugMode();
/// <summary>
/// get user name and user id card
/// </summary>
public abstract string GetUserNameAndUserIDCard();
/// <summary>
/// set segment type to sdk
/// </summary>
/// <param name="type">segment type</param>
public abstract void SetSegment(SegmentType type);
/// <summary>
/// get a iap product list for sdk config file
/// </summary>
public abstract Dictionary<string, string> GetIAPProductList();
2022-06-13 07:55:30 +00:00
#endregion
#region Others (Uncommon)
/// <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 timeshake time100,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();
2023-09-12 09:23:21 +00:00
/// <summary>
/// show picture cross
/// </summary>
public abstract bool showPictureCross();
/// <summary>
/// remove picture cross
/// </summary>
public abstract void removePictureCross();
/// <summary>
/// show more game icon
/// </summary>
public abstract bool showMoreGameIcon();
/// <summary>
/// remove more game icon
/// </summary>
public abstract void removeMoreGameIcon();
/// <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);
#endregion
#region other callback
/// <summary>
/// set tkg common callback
/// </summary>
public abstract void SetSDKCommonCallback(AndroidTKGCommonCalllback _commonCallback);
/// <summary>
/// set user source callback
/// </summary>
public abstract void SetUserSourceCallback(AndroidTKGUserSourceCalllback _userSourceCallback);
/// <summary>
/// set user source callback with CampaignName
/// </summary>
public abstract void SetUserSourceCallback(AndroidTKGUserSourceCalllbackWithCampaignName _userSourceCallback);
2023-09-12 09:23:21 +00:00
/// <summary>
/// Set Function Switch Calllback
/// </summary>
public abstract void SetFunctionSwitchCalllback(List<FunctionType> _functionKeys ,AndroidFunctionSwitchCalllback _functionSwitchCalllback);
2022-06-13 07:55:30 +00:00
#endregion
2023-09-12 09:23:21 +00:00
#region
public abstract void LogPurchasePrice(string price,string currency);
public abstract void LogRobuxCashOut();
public abstract void LogNoviceGuideFinish();
#endregion
#region GooglePlay评论引导
/// <summary>
/// Pop up GooglePlay Rate guid
/// </summary>
public abstract bool GuidGpComment();
#endregion
#region
/// <summary>
/// User Login
/// </summary>
public abstract void Login(LoginType loginType, Action<LoginStatus, LoginType, string, string, string, string,string,string> _loginResultCallback = null);
/// <summary>
/// Logout
/// </summary>
public abstract void Logout(Action _logoutCallback = null);
public abstract List<LoginType> AvailableLoginChannelList();
public abstract void DeleteAccount(Action<DeleteStatus,string> _deleteAccountCallback = null);
public abstract void BindAccount(LoginType type,BindType isForce, string userId,
Action<BindAccountStatus, LoginType, string, string, string, string, string, string, string[]>
bindAccountCallback);
public abstract void AutoLogin(
Action<LoginStatus, LoginType, string, string, string, string, string, string> loginResultCallback);
public abstract LoginType GetAccountType();
public abstract bool IsCanAutoLogin();
#endregion
#region IAP Event
/// <summary>
/// Log IAP button show
/// </summary>
/// <param name="_productName">Product name (customized on the game side) English name of the product cannot contain special characters ex: Gem100</param>
/// <param name="_productID">Product ID: The ID of a specific product type</param>
public abstract void LogIAPBtnShow(string _productName, string _productID);
/// <summary>
/// Log IAP button Click
/// </summary>
/// <param name="_productName">Product name (customized on the game side) English name of the product cannot contain special characters ex: Gem100</param>
/// <param name="_productID">Product ID: The ID of a specific product type</param>
public abstract void LogIAPBtnClick(string _productName, string _productID);
/// <summary>
/// Log IAP First payment successful
/// </summary>
/// <param name="_iap">Product name (customized on the game side) English name of the product cannot contain special characters ex: Gem100</param>
/// <param name="_id">Product ID: The ID of a specific product type</param>
/// <param name="_paymentChannelOrderid">The order id returned by the payment channel</param>
/// <param name="_currency">Currency ex:USD</param>
/// <param name="_price">Price</param>
public abstract void LogIAPFirstPurchase(string _iap, string _id, string _paymentChannelOrderid, string _currency, string _price);
/// <summary>
/// Log IAP payment successful
/// </summary>
/// <param name="_iap">Product name (customized on the game side) English name of the product cannot contain special characters ex: Gem100</param>
/// <param name="_id">Product ID: The ID of a specific product type</param>
/// <param name="_gameOrderid">The order id on the game side</param>
/// <param name="_paymentChannelOrderid">The order id returned by the payment channel</param>
/// <param name="_productToken">Purchase token: When the purchase is successful on GP, a purchase token will be generated as a unique identifier</param>
/// <param name="_paymentMethod">Official payment channels: appstore, googleplay, other payment channels corresponding channel name</param>
/// <param name="_currency">Currency ex:USD</param>
/// <param name="_price">Price</param>
public abstract void LogIAPSuccess(string _iap, string _id, string _gameOrderid, string _paymentChannelOrderid, string _productToken, string _paymentMethod, string _currency, string _price);
#endregion
#region MyRegion
public abstract void SaveCloudArchiving(string content, Action<int, string> callback);
public abstract void DetailCloudArchiving(Action<int, string> callback);
#endregion
#region serve for wz
/// <summary>
/// Set userid and third account
/// </summary>
/// <param name="_userID"> userID (Unique user id)</param>
/// <param name="_thirdAccount">third account </param>
/// <param name="_thirdAccountType"> third account type </param>
public abstract void SetUserIDAndThirdAccount(string _userID, string _thirdAccount, ThirdAccountType _thirdAccountType);
#endregion
#region client iap pay result
/// <summary>
/// Client IAP Success
/// </summary>
public abstract void ClientIAPSuccess(string _productName, string _productID, string _purchaseOrderID, string _purchaseToken, string _currency, string _price, string _gameExtra);
/// <summary>
/// Client IAP Failed
/// </summary>
public abstract void ClientIAPFailed(string _productName, string _productID, string _purchaseOrderID, string _purchaseToken, string _currency, string _price, string _gameExtra, IAPClientFailReasonType _failType);
#endregion
2022-06-13 07:55:30 +00:00
}
}