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

1033 lines
30 KiB
C#
Raw Normal View History

2022-06-13 07:55:30 +00:00
#if UNITY_ANDROID
using System;
2022-06-13 07:55:30 +00:00
using System.Collections;
using System.Collections.Generic;
2023-09-12 09:23:21 +00:00
using System.Linq;
2022-06-13 07:55:30 +00:00
using UnityEngine;
namespace Touka
{
/// <summary>
/// TKG Native SDK Android platform interface call
/// </summary>
public class TKGNativeInterfaceAndroid : TKGNativeInterface
{
private AndroidJavaObject jo;
public TKGNativeInterfaceAndroid()
{
// java interface class
using (AndroidJavaClass jc = new AndroidJavaClass("com.touka.tkg.TKGProxyJava"))
{
jo = jc.CallStatic<AndroidJavaObject>("getInstance");
}
}
private T SDKCall<T>(string _method, params object[] _param)
{
try
{
return jo.Call<T>(_method, _param);
}
catch (Exception e)
{
Debug.LogError(e);
}
2023-09-12 09:23:21 +00:00
2022-06-13 07:55:30 +00:00
return default(T);
}
private void SDKCall(string _method, params object[] _param)
{
try
{
jo.Call(_method, _param);
}
catch (Exception e)
{
Debug.LogError(e);
}
}
2023-09-12 09:23:21 +00:00
#region init
2022-06-13 07:55:30 +00:00
/// <summary>
/// init
/// </summary>
/// <param name="_initCallback"></param>
public override void Init(Action _initCallback = null)
{
TKGDebugger.LogDebug("init ----- 00");
2022-06-13 07:55:30 +00:00
base.Init(_initCallback);
TKGDebugger.LogDebug("init ----- 01");
2022-06-13 07:55:30 +00:00
SetBannerAdCallback(new AndroidBannerADTKGAdCallback());
TKGDebugger.LogDebug("init ----- 01 ------- a");
2022-06-13 07:55:30 +00:00
setInterstitalAdCallback(new AndroidInterADTKGAdCallback());
TKGDebugger.LogDebug("init ----- 01 ------- b");
2022-06-13 07:55:30 +00:00
SetRewardAdCallback(new AndroidRewardADTKGAdCallback());
TKGDebugger.LogDebug("init ----- 01 ------- c");
SetSDKCommonCallback(new AndroidTKGCommonCalllback());
TKGDebugger.LogDebug("init ----- 01 ------- d");
2023-09-12 09:23:21 +00:00
SetSecondPurchaseCallback();
SetAdsRevenueCallback();
2022-06-13 07:55:30 +00:00
SDKCall("init", new AndroidProxyCallback());
TKGDebugger.LogDebug("init ----- 02");
2022-06-13 07:55:30 +00:00
}
2023-09-12 09:23:21 +00:00
private void SetSecondPurchaseCallback()
{
#if USE_IAP
SDKCall("setSecondPurchaseCallback", new SecondPurchaseCallback());
#endif
}
private void SetAdsRevenueCallback()
{
SDKCall("setAdsRevenueCallback", new AdsRevenueCallback());
}
#endregion
2022-06-13 07:55:30 +00:00
/// <summary>
/// Get Channel
/// </summary>
/// <returns></returns>
public override string GetChannel()
{
#if UNITY_ANDROID
2022-06-13 07:55:30 +00:00
return SDKCall<string>("getChannel");
#endif
return "AndroidRoot";
2022-06-13 07:55:30 +00:00
}
2023-09-12 09:23:21 +00:00
#region Ads
2022-06-13 07:55:30 +00:00
public override void PurchasedRemoveAds()
{
#if UNITY_ANDROID
SDKCall("purchasedRemoveAds");
#endif
}
public override void SetUnitySDKVersion(string sdkVersion)
{
#if UNITY_ANDROID
2023-09-12 09:23:21 +00:00
SDKCall("setUnitySDKVersion", "UnitySDK", sdkVersion);
#endif
}
2023-09-12 09:23:21 +00:00
#region Ads Show
2022-06-13 07:55:30 +00:00
/// <summary>
/// Show banner Ad
/// </summary>
/// <param name="_bannerAlign">bannerAlign</param>
2023-09-12 09:23:21 +00:00
public override void showBannerAd(TKGBannerAlign _pos)
2022-06-13 07:55:30 +00:00
{
int _posIndex = 2;
2023-09-12 09:23:21 +00:00
if (_pos == TKGBannerAlign.BannerCenterTopAlign)
{
_posIndex = 1;
}
2023-09-12 09:23:21 +00:00
else if (_pos == TKGBannerAlign.BannerCenterBottomAlign)
{
_posIndex = 2;
}
#if UNITY_ANDROID
SDKCall("showBannerAd", _posIndex);
#endif
2022-06-13 07:55:30 +00:00
}
/// <summary>
/// Hide Banner Ad
/// </summary>
public override void hideBannerAd()
{
#if UNITY_ANDROID
2022-06-13 07:55:30 +00:00
SDKCall("hideBannerAd");
#endif
}
public override void RemoveNativeAd()
{
#if UNITY_ANDROID
SDKCall("hideNative");
#endif
2022-06-13 07:55:30 +00:00
}
/// <summary>
/// Show Interstitial Ad
/// </summary>
public override void showInterstitialAd()
{
#if UNITY_ANDROID
2022-06-13 07:55:30 +00:00
SDKCall("showInterstitialAd");
#endif
2022-06-13 07:55:30 +00:00
}
/// <summary>
/// Show Interstitial Ad
/// </summary>
/// <param name="_adPos"></param>
public override void showInterstitialAd(string _adPos, IVADType _IvType = IVADType.IV1)
{
#if UNITY_ANDROID
2022-06-13 07:55:30 +00:00
SDKCall("showInterstitialAd", _adPos, (int)_IvType);
#endif
2022-06-13 07:55:30 +00:00
}
/// <summary>
/// Show Reward Ad
/// </summary>
/// <param name="_adPos"></param>
/// <param name="_itemCount"></param>
public override void showRewardAd(string _adPos, int _itemCount = -1)
{
#if UNITY_ANDROID
2022-06-13 07:55:30 +00:00
SDKCall("showRewardAd", _adPos, _itemCount);
#endif
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 override void showRewardAd(string _adPos, int _itemCount, Dictionary<string, string> _extraEvent)
{
#if UNITY_ANDROID
2022-06-13 07:55:30 +00:00
SDKCall("showRewardAd", _adPos, _itemCount, _extraEvent);
#endif
2022-06-13 07:55:30 +00:00
}
/// <summary>
/// Show Video Ad
/// </summary>
/// <param name="_adPos"></param>
/// <param name="_itemCount"></param>
public override void showVideoAd(string _adPos, int _itemCount = -1)
{
#if UNITY_ANDROID
2022-06-13 07:55:30 +00:00
SDKCall("showVideoAd", _adPos, _itemCount);
#endif
2022-06-13 07:55:30 +00:00
}
public override void SetShowSDKToast(bool _useSDKToast)
{
#if UNITY_ANDROID
2023-09-12 09:23:21 +00:00
SDKCall("setShowSDKRewardTips", _useSDKToast);
#endif
}
public override void ShowNativeAd(RectTransform pRect, Camera pCam = null, string pAdPos = "")
{
#if UNITY_ANDROID
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);
// x , y , width , height
// ((tTopLeft.x, Screen.height - tTopLeft.y, tWidth, tHeight)
2023-09-12 09:23:21 +00:00
SDKCall("showNative", pAdPos, tTopLeft.x, Screen.height - tTopLeft.y, tWidth, tHeight);
#endif
}
2023-09-12 09:23:21 +00:00
#endregion
2022-06-13 07:55:30 +00:00
2023-09-12 09:23:21 +00:00
#region Ads isready
2022-06-13 07:55:30 +00:00
/// <summary>
/// banner isReady
/// </summary>
/// <returns></returns>
public override bool isBannerAdReady()
{
#if UNITY_ANDROID
2022-06-13 07:55:30 +00:00
bool isReady = SDKCall<bool>("isBannerAdReady");
return isReady;
#else
return false;
#endif
2022-06-13 07:55:30 +00:00
}
/// <summary>
/// Interstitial isReady
/// </summary>
/// <returns></returns>
public override bool isInterstitialAdReady()
{
#if UNITY_ANDROID
2022-06-13 07:55:30 +00:00
bool isReady = SDKCall<bool>("isInterstitialAdReady");
return isReady;
#else
return false;
#endif
2022-06-13 07:55:30 +00:00
}
/// <summary>
/// Reward isReady
/// </summary>
/// <returns></returns>
public override bool isRewardAdReady()
{
#if UNITY_ANDROID
2022-06-13 07:55:30 +00:00
bool isReady = SDKCall<bool>("isRewardAdReady");
return isReady;
#else
return false;
#endif
2022-06-13 07:55:30 +00:00
}
/// <summary>
/// FullScreen isReady
/// </summary>
/// <returns></returns>
public override bool isVideoAdReady()
{
#if UNITY_ANDROID
2022-06-13 07:55:30 +00:00
bool isReady = SDKCall<bool>("isVideoAdReady");
return isReady;
#else
return false;
#endif
}
public override bool IsReadyNativeAd()
{
#if UNITY_ANDROID
bool isReady = SDKCall<bool>("isNativeReady");
return isReady;
#else
return false;
#endif
2022-06-13 07:55:30 +00:00
}
2023-09-12 09:23:21 +00:00
#endregion
2022-06-13 07:55:30 +00:00
2023-09-12 09:23:21 +00:00
#region Set ads callback
2022-06-13 07:55:30 +00:00
/// <summary>
/// Set Banner Ad Callback
/// </summary>
/// <param name="_bannerCallback"></param>
public override void SetBannerAdCallback(AndroidBannerADTKGAdCallback _bannerCallback)
{
#if UNITY_ANDROID
2022-06-13 07:55:30 +00:00
SDKCall("setBannerAdCallback", _bannerCallback);
#endif
2022-06-13 07:55:30 +00:00
}
/// <summary>
/// Set Interstital Ad Callback
/// </summary>
/// <param name="_interCallback"></param>
public override void setInterstitalAdCallback(AndroidInterADTKGAdCallback _interCallback)
{
#if UNITY_ANDROID
2022-06-13 07:55:30 +00:00
SDKCall("setInterstitalAdCallback", _interCallback);
#endif
2022-06-13 07:55:30 +00:00
}
/// <summary>
/// Set reward Ad Callback
/// </summary>
/// <param name="_rewardCallback"></param>
public override void SetRewardAdCallback(AndroidRewardADTKGAdCallback _rewardCallback)
{
#if UNITY_ANDROID
2022-06-13 07:55:30 +00:00
SDKCall("setRewardAdCallback", _rewardCallback);
#endif
2022-06-13 07:55:30 +00:00
}
2022-06-13 07:55:30 +00:00
/// <summary>
/// Set video Ad Callback(full screen ad, reward ad with no reward callback)
/// </summary>
/// <param name="_videoCallback"></param>
public override void setVideoAdCallback(AndroidInterADTKGAdCallback _videoCallback)
{
#if UNITY_ANDROID
2022-06-13 07:55:30 +00:00
SDKCall("setVideoAdCallback", _videoCallback);
#endif
2022-06-13 07:55:30 +00:00
}
2023-09-12 09:23:21 +00:00
#endregion
2022-06-13 07:55:30 +00:00
2023-09-12 09:23:21 +00:00
#region load ads
2022-06-13 07:55:30 +00:00
/// <summary>
/// load interstitial ad
/// (retry 3 times, per time interval 10s)
/// </summary>
public override void loadInterstitialAD()
{
#if UNITY_ANDROID
2022-06-13 07:55:30 +00:00
SDKCall("loadInterstitialAD");
#endif
2022-06-13 07:55:30 +00:00
}
/// <summary>
/// load reward ad
/// (retry 3 times, per time interval 10s)
/// </summary>
public override void loadRewardAD()
{
#if UNITY_ANDROID
2022-06-13 07:55:30 +00:00
SDKCall("loadRewardAD");
#endif
2022-06-13 07:55:30 +00:00
}
/// <summary>
/// load video ad
/// (retry 3 times, per time interval 10s)
/// </summary>
public override void loadVideoAD()
{
#if UNITY_ANDROID
2022-06-13 07:55:30 +00:00
SDKCall("loadVideoAD");
#endif
2022-06-13 07:55:30 +00:00
}
2023-09-12 09:23:21 +00:00
#endregion
2022-06-13 07:55:30 +00:00
2023-09-12 09:23:21 +00:00
#endregion
2022-06-13 07:55:30 +00:00
2023-09-12 09:23:21 +00:00
#region Log Event
2022-06-13 07:55:30 +00:00
2023-09-12 09:23:21 +00:00
#region Normal
2022-06-13 07:55:30 +00:00
/// <summary>
/// onEvent
/// </summary>
/// <param name="_eventName"></param>
/// <returns></returns>
public override void onEvent(string _eventName)
{
#if UNITY_ANDROID
2022-06-13 07:55:30 +00:00
SDKCall("onEvent", _eventName);
#endif
2022-06-13 07:55:30 +00:00
}
/// <summary>
/// onEvent
/// </summary>
/// <param name="_eventName"></param>
/// <param name="_key01"></param>
/// <param name="_value01"></param>
/// <returns></returns>
public override void onEvent(string _eventName, string _key01, string _value01)
{
#if UNITY_ANDROID
2022-06-13 07:55:30 +00:00
SDKCall("onEvent", _eventName, _key01, _value01);
#endif
2022-06-13 07:55:30 +00:00
}
/// <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 override void onEvent(string _eventName, string _key01, string _value01, string _key02, string _value02)
{
#if UNITY_ANDROID
2022-06-13 07:55:30 +00:00
SDKCall("onEvent", _eventName, _key01, _value01, _key02, _value02);
#endif
2022-06-13 07:55:30 +00:00
}
/// <summary>
/// onEvent
/// </summary>
/// <param name="_eventName"></param>
/// <param name="_keyValues"></param>
public override void onEvent(string _eventName, Dictionary<string, string> _keyValues)
{
#if UNITY_ANDROID
2022-06-13 07:55:30 +00:00
SDKCall("onEvent", _eventName, Analytics.ToJavaHashMap(_keyValues));
#endif
2022-06-13 07:55:30 +00:00
}
2023-09-12 09:23:21 +00:00
#endregion
2022-06-13 07:55:30 +00:00
2023-09-12 09:23:21 +00:00
#region Level Event
2022-06-13 07:55:30 +00:00
/// <summary>
/// Level Start
/// </summary>
/// <param name="_levelId"></param>
public override void LevelStart(string _levelId)
{
#if UNITY_ANDROID
2022-06-13 07:55:30 +00:00
SDKCall("levelStart", _levelId);
#endif
2022-06-13 07:55:30 +00:00
}
/// <summary>
/// Level end
/// </summary>
/// <param name="_levelId"></param>
/// <param name="_stageResult"></param>
public override void LevelEnd(string _levelId, StageResult _stageResult)
2022-06-13 07:55:30 +00:00
{
#if UNITY_ANDROID
SDKCall("levelEnd", _levelId, (int)_stageResult);
#endif
2022-06-13 07:55:30 +00:00
}
2023-09-12 09:23:21 +00:00
#endregion
2022-06-13 07:55:30 +00:00
2023-09-12 09:23:21 +00:00
#region Tracking Event
2022-06-13 07:55:30 +00:00
/// <summary>
/// Log Tracking Event
/// </summary>
/// <param name="_eventType"></param>
public override void LogTrackingEvent(TrackingEventType _eventType)
{
#if UNITY_ANDROID
2022-06-13 07:55:30 +00:00
SDKCall("LogTrackingEvent", (int)_eventType);
#endif
2022-06-13 07:55:30 +00:00
}
2023-09-12 09:23:21 +00:00
#endregion
2022-06-13 07:55:30 +00:00
2023-09-12 09:23:21 +00:00
#endregion
2022-06-13 07:55:30 +00:00
2023-09-12 09:23:21 +00:00
#region Online Config
2022-06-13 07:55:30 +00:00
/// <summary>
/// get config - int
/// </summary>
/// <param name="_key"></param>
/// <returns></returns>
public override int GetConfigInt(string _key, int _default)
2022-06-13 07:55:30 +00:00
{
TKGDebugger.LogDebug("int _key : " + _key + " , _default : " + _default);
int newValue = SDKCall<int>("getConfigInt", _key, _default);
2022-06-13 07:55:30 +00:00
return newValue;
}
/// <summary>
/// get config - string
/// </summary>
/// <param name="_key"></param>
/// <returns></returns>
public override string GetConfigString(string _key, string _default)
2022-06-13 07:55:30 +00:00
{
TKGDebugger.LogDebug("string _key : " + _key + " , _default : " + _default);
string newValue = SDKCall<string>("getConfigString", _key, _default);
2022-06-13 07:55:30 +00:00
return newValue;
}
/// <summary>
/// get config - bool
/// </summary>
/// <param name="_key"></param>
/// <returns></returns>
public override bool GetConfigBool(string _key, bool _default)
2022-06-13 07:55:30 +00:00
{
TKGDebugger.LogDebug("bool _key : " + _key + " , _default : " + _default);
bool newValue = SDKCall<bool>("getConfigBool", _key, _default);
2022-06-13 07:55:30 +00:00
return newValue;
}
2023-09-12 09:23:21 +00:00
#endregion
2023-09-12 09:23:21 +00:00
#region Others (Common)
2022-06-13 07:55:30 +00:00
/// <summary>
/// review
/// </summary>
public override void Review()
{
SDKCall("review");
}
/// <summary>
/// open Privacy
/// </summary>
public override void OpenPrivacyURL()
{
SDKCall("openPrivacy");
}
/// <summary>
/// open agreement
/// </summary>
public override void OpenUserTermURL()
{
SDKCall("openAgreement");
}
/// <summary>
/// open policy pop
/// </summary>
public override void OpenPolicyPop()
{
SDKCall("openPrivacyDialog");
}
/// <summary>
/// More Games
/// </summary>
public override void OpenMoreGame()
{
SDKCall("moreGames");
}
/// <summary>
/// Set Log Enable
/// </summary>
/// <param name="_enable"></param>
public override void SetLogEnable(bool _enable)
{
SDKCall("setEnableLog", _enable);
}
2022-06-13 07:55:30 +00:00
2023-09-12 09:23:21 +00:00
/// <summary>
/// get a iap product list for sdk config file
/// </summary>
public override Dictionary<string, string> GetIAPProductList()
{
Dictionary<string, string> dic = new Dictionary<string, string>();
return dic;
}
public override bool IsDebugMode()
{
return SDKCall<bool>("isDebugMode");
}
/// <summary>
/// get user name and user id card
/// </summary>
public override string GetUserNameAndUserIDCard()
{
return "0_0";
}
/// <summary>
/// set segment type to sdk
/// </summary>
/// <param name="type">segment type</param>
public override void SetSegment(SegmentType type)
{
SDKCall("setSegment", type.ToString());
}
#endregion
#region Others (Uncommon)
2022-06-13 07:55:30 +00:00
/// <summary>
/// shake(no repeat)
/// </summary>
/// <param name="_shakeTime"> shake time </param>
public override void shake(int _shakeType, float _intensity = 1)
{
long tShakeMS = _shakeType * _shakeType * 20 + (int)(_intensity * (_shakeType + 1) * 10);
SDKCall("shake", tShakeMS);
}
/// <summary>
/// shake(can repeat)
/// </summary>
/// <param name="_repeatTimes"> repeat times : -1 </param>
/// <param name="_shakeTime"> wait timeshake time100,1000,100,111</param>
//public override void shake(int _repeatTimes, params int[] _shakeTime)
//{
// SDKCall("shake", _repeatTimes, _shakeTime);
//}
/// <summary>
/// cancel shake
/// </summary>
public override void cancelShake()
{
SDKCall("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 override void dialogTips(string _titleStr, string _contentStr = "")
{
SDKCall("dialogTips", _titleStr);
}
/// <summary>
/// Open ULR by Browser
/// </summary>
/// <param name="_url"></param>
public override void openUrlBrowser(string _url)
{
SDKCall("openUrlBrowser", _url);
}
/// <summary>
/// Open ULR By WEB POP
/// </summary>
/// <param name="_url"></param>
public override void openWebUrl(string _url)
{
SDKCall("openWebUrl", _url);
}
/// <summary>
/// show Toast
/// </summary>
/// <param name="_content"></param>
public override void toast(string _content)
{
2023-09-12 09:23:21 +00:00
SDKCall("dialogTips", _content);
2022-06-13 07:55:30 +00:00
}
/// <summary>
/// push message
/// </summary>
public override void pushMsg()
{
SDKCall("pushMsg");
}
// <summary>
/// share txt
/// </summary>
/// <param name="_shareTxt"></param>
public override void ShareTxt(string _shareTxt)
{
SDKCall("localShareTxt", _shareTxt);
}
public override void RegistAPNS()
{
}
2023-09-12 09:23:21 +00:00
/// <summary>
/// show picture cross
/// </summary>
public override bool showPictureCross()
{
return SDKCall<bool>("showPictureCross");
}
/// <summary>
/// remove picture cross
/// </summary>
public override void removePictureCross()
{
SDKCall("removePictureCross");
}
/// <summary>
/// show more game icon
/// </summary>
public override bool showMoreGameIcon()
{
return SDKCall<bool>("showMoreGameIcon");
}
/// <summary>
/// remove more game icon
/// </summary>
public override void removeMoreGameIcon()
{
SDKCall("removeMoreGameIcon");
}
public override void RegistNotification(string notiId, string body, string fireDate, int badge, string title,
string subTitle)
{
2023-09-12 09:23:21 +00:00
SDKCall("registNotification", notiId, body, fireDate, badge, title, subTitle);
}
public override void RemoveNotification(string notiId)
{
2023-09-12 09:23:21 +00:00
SDKCall("removeNotification", notiId);
}
public override void RemoveAllNotifications()
{
2023-09-12 09:23:21 +00:00
SDKCall("removeAllNotifications");
}
2023-09-12 09:23:21 +00:00
#endregion
2023-09-12 09:23:21 +00:00
#region
public override void LogPurchasePrice(string price, string currency)
{
SDKCall("logPurchasePrice", price, currency);
}
public override void LogRobuxCashOut()
{
SDKCall("logRobuxCashOut");
}
public override void LogNoviceGuideFinish()
{
SDKCall("logNoviceGuideFinish");
}
#endregion
#region common callback
2022-06-13 07:55:30 +00:00
public override void SetSDKCommonCallback(AndroidTKGCommonCalllback _commonCallback)
{
SDKCall("setTkgCallback", _commonCallback);
}
public override void SetUserSourceCallback(AndroidTKGUserSourceCalllback _userSourceCallback)
{
SDKCall("getUserSource", _userSourceCallback);
}
2022-06-13 07:55:30 +00:00
public override void SetUserSourceCallback(AndroidTKGUserSourceCalllbackWithCampaignName _userSourceCallback)
{
SDKCall("getUserSource", _userSourceCallback);
}
2023-09-12 09:23:21 +00:00
public override void SetFunctionSwitchCalllback(List<FunctionType> _functionKeys,
AndroidFunctionSwitchCalllback _functionSwitchCalllback)
{
string keys = "";
for (int i = 0; i < _functionKeys.Count; i++)
{
FunctionType enumType = _functionKeys[i];
string enumTypeString = enumType.ToString();
if (keys != "")
{
keys = keys + "@";
}
keys = keys + enumTypeString;
}
SDKCall("setGameSwitchListener", keys, _functionSwitchCalllback);
}
public override bool GuidGpComment()
{
return SDKCall<bool>("guidGpComment");
}
#endregion
#region
public override void Login(LoginType loginType,
Action<LoginStatus, LoginType, string, string, string, string, string, string> _loginResultCallback = null)
{
TKGSDKCallback.mLoginCallback = _loginResultCallback;
SDKCall("login", (int)loginType, new AndroidLoginCalllback());
}
public override void Logout(Action _logoutCallback = null)
{
TKGSDKCallback.mLogoutCallback = _logoutCallback;
SDKCall("logout", new AndroidLoginCalllback());
}
public override List<LoginType> AvailableLoginChannelList()
{
var availableLoginChannelList = SDKCall<int[]>("availableLoginChannelList");
return availableLoginChannelList.Select(channel => (LoginType)Enum.ToObject(typeof(LoginType), channel))
.ToList();
}
public override void DeleteAccount(Action<DeleteStatus, string> deleteAccountCallback = null)
{
TKGSDKCallback.mDeleteAccountCallback = deleteAccountCallback;
SDKCall("deleteAccount", new AndroidLoginCalllback());
}
public override void BindAccount(LoginType type, BindType isForce, string userId,
Action<BindAccountStatus, LoginType, string, string, string, string, string, string, string[]>
bindAccountCallback)
{
TKGSDKCallback.mBindAccountCallback = bindAccountCallback;
SDKCall("bindAccount", (int)type, (int)isForce, userId, new AndroidLoginCalllback());
}
public override void AutoLogin(
Action<LoginStatus, LoginType, string, string, string, string, string, string> loginResultCallback)
{
TKGSDKCallback.mAutoLoginCallback = loginResultCallback;
SDKCall("autoLogin", new AndroidLoginCalllback(isAutoLogin: true));
}
public override LoginType GetAccountType()
{
var userType = SDKCall<int>("getUserType");
return (LoginType)Enum.ToObject(typeof(LoginType), userType);
}
public override bool IsCanAutoLogin()
{
return SDKCall<bool>("isCanAutoLogin");
}
#endregion
#region IAP Event
/// <summary>
/// Log IAP button show
/// </summary>
public override void LogIAPBtnShow(string _productName, string _productID)
{
Dictionary<string, string> _keyValues = new Dictionary<string, string>();
_keyValues.Add("IAP", _productName);
_keyValues.Add("ID", _productID);
//_keyValues.Add("Currency", _currency);
//_keyValues.Add("Price", _price);
onEvent("IAP_Button_Show", _keyValues);
}
/// <summary>
/// Log IAP button Click
/// </summary>
public override void LogIAPBtnClick(string _productName, string _productID)
{
Dictionary<string, string> _keyValues = new Dictionary<string, string>();
_keyValues.Add("IAP", _productName);
_keyValues.Add("ID", _productID);
//_keyValues.Add("Currency", _currency);
//_keyValues.Add("Price", _price);
onEvent("IAP_Button_Click", _keyValues);
}
/// <summary>
/// Log IAP First payment successful
/// </summary>
public override void LogIAPFirstPurchase(string _iap, string _id, string _paymentChannelOrderid,
string _currency, string _price)
{
// 放到native层实现了
//Dictionary<string, string> _keyValues = new Dictionary<string, string>();
//_keyValues.Add("IAP", _iap);
//_keyValues.Add("ID", _id);
//_keyValues.Add("Currency", _currency);
//_keyValues.Add("Price", _price);
//_keyValues.Add("order_id", _paymentChannelOrderid);
//onEvent("First_purchase", _keyValues);
}
/// <summary>
/// Log IAP payment successful
/// </summary>
public override void LogIAPSuccess(string _iap, string _id, string _gameOrderid, string _paymentChannelOrderid,
string _productToken, string _paymentMethod, string _currency, string _price)
{
// 放到native层实现了
//Dictionary<string, string> _keyValues = new Dictionary<string, string>();
//_keyValues.Add("IAP", _iap);
//_keyValues.Add("ID", _id);
//_keyValues.Add("Currency", _currency);
//_keyValues.Add("Price", _price);
//_keyValues.Add("order_id", _paymentChannelOrderid);
//onEvent("IAP_Success", _keyValues);
//SDKCall("logIAPSuccess", _price, _id, _gameOrderid, _paymentChannelOrderid, _productToken, _currency, _paymentMethod, _iap);
}
public override void SaveCloudArchiving(string content, Action<int, string> callback)
{
void Action(CommonCallbackCode code, string s)
{
if (code == CommonCallbackCode.SaveCloudArchiving_Succ ||
code == CommonCallbackCode.SaveCloudArchiving_Fail)
{
callback.Invoke(code == CommonCallbackCode.SaveCloudArchiving_Succ ? 0 : -1, s);
TKGSDKCallback.RemoveTKGCommonCallback(Action);
}
}
TKGSDKCallback.SetTKGCommonCallback(Action);
SDKCall("saveCloudArchiving", content);
}
public override void DetailCloudArchiving(Action<int, string> callback)
{
void Action(CommonCallbackCode code, string s)
{
if (code == CommonCallbackCode.DetailCloudArchiving_Succ ||
code == CommonCallbackCode.DetailCloudArchiving_Fail)
{
callback.Invoke(code == CommonCallbackCode.DetailCloudArchiving_Succ ? 0 : -1, s);
TKGSDKCallback.RemoveTKGCommonCallback(Action);
}
}
TKGSDKCallback.SetTKGCommonCallback(Action);
SDKCall("detailCloudArchiving");
}
#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 override void SetUserIDAndThirdAccount(string _userID, string _thirdAccount,
ThirdAccountType _thirdAccountType)
{
Debug.Log("【TKGNativeInterfaceAndroid】 SetUserIDAndThirdAccount _userID : " + _userID +
" , _thirdAccount : " + _thirdAccount + " , _thirdAccountType : " + _thirdAccountType);
SDKCall("setUserIDAndThirdAccount", _userID, _thirdAccount, _thirdAccountType.ToString());
}
#endregion
#region client iap pay result
/// <summary>
/// Client IAP Success
/// </summary>
public override void ClientIAPSuccess(string _productName, string _productID, string _purchaseOrderID,
string _purchaseToken, string _currency, string _price, string _gameExtra)
{
SDKCall("ClientIAPSuccess", _productName, _productID, _purchaseOrderID, _purchaseToken, _currency, _price,
_gameExtra);
}
/// <summary>
/// Client IAP Failed
/// </summary>
public override void ClientIAPFailed(string _productName, string _productID, string _purchaseOrderID,
string _purchaseToken, string _currency, string _price, string _gameExtra,
IAPClientFailReasonType _failType)
{
SDKCall("ClientIAPFailed", _productName, _productID, _purchaseOrderID, _purchaseToken, _currency, _price,
_gameExtra, _failType.ToString());
}
2022-06-13 07:55:30 +00:00
2023-09-12 09:23:21 +00:00
#endregion
2022-06-13 07:55:30 +00:00
}
}
#endif