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

588 lines
16 KiB
C#
Raw Normal View History

2022-07-04 11:17:39 +00:00
#if UNITY_ANDROID
using System;
using System.Collections;
using System.Collections.Generic;
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);
}
return default(T);
}
private void SDKCall(string _method, params object[] _param)
{
try
{
jo.Call(_method, _param);
}
catch (Exception e)
{
Debug.LogError(e);
}
}
#region init
/// <summary>
/// init
/// </summary>
/// <param name="_initCallback"></param>
public override void Init(Action _initCallback = null)
{
TKGDebugger.LogDebug("init ----- 00");
base.Init(_initCallback);
TKGDebugger.LogDebug("init ----- 01");
SetBannerAdCallback(new AndroidBannerADTKGAdCallback());
TKGDebugger.LogDebug("init ----- 01 ------- a");
setInterstitalAdCallback(new AndroidInterADTKGAdCallback());
TKGDebugger.LogDebug("init ----- 01 ------- b");
SetRewardAdCallback(new AndroidRewardADTKGAdCallback());
TKGDebugger.LogDebug("init ----- 01 ------- c");
SetSDKCommonCallback(new AndroidTKGCommonCalllback());
TKGDebugger.LogDebug("init ----- 01 ------- d");
SDKCall("init", new AndroidProxyCallback());
TKGDebugger.LogDebug("init ----- 02");
}
#endregion
/// <summary>
/// Get Channel
/// </summary>
/// <returns></returns>
public override string GetChannel()
{
#if UNITY_EDITOR
return "AndroidRoot";
#endif
return SDKCall<string>("getChannel");
}
#region Ads
#region Ads Show
/// <summary>
/// show native ad
/// TODO 这个参数值需要修改成跟ios获取位置坐标宽高一样的方式
/// showPoint 展示广告点位
///
/// </summary>
public override void ShowNative(string nativePos, float x, float y, float width, float height)
{
SDKCall("showNative", nativePos, (int)x, (int)y, (int)width, (int)height);
}
/// <summary>
/// hide native ad
/// </summary>
public override void HideNative()
{
SDKCall("hideNative");
}
/// <summary>
/// Is Ready Native
/// </summary>
public override bool IsNativeReady()
{
bool isReady = SDKCall<bool>("isNativeReady");
return isReady;
}
#region Ads Show
/// <summary>
/// Show banner Ad
/// </summary>
/// <param name="_pos"> banner pos 1Top2Bottom </param>
public override void showBannerAd(int _pos)
{
SDKCall("showBannerAd", _pos);
}
/// <summary>
/// Hide Banner Ad
/// </summary>
public override void hideBannerAd()
{
SDKCall("hideBannerAd");
}
/// <summary>
/// Show Interstitial Ad
/// </summary>
public override void showInterstitialAd()
{
SDKCall("showInterstitialAd");
}
/// <summary>
/// Show Interstitial Ad
/// </summary>
/// <param name="_adPos"></param>
public override void showInterstitialAd(string _adPos, IVADType _IvType = IVADType.IV1)
{
SDKCall("showInterstitialAd", _adPos, (int)_IvType);
}
/// <summary>
/// Show Reward Ad
/// </summary>
/// <param name="_adPos"></param>
/// <param name="_itemCount"></param>
public override void showRewardAd(string _adPos, int _itemCount = -1)
{
SDKCall("showRewardAd", _adPos, _itemCount);
}
/// <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)
{
SDKCall("showRewardAd", _adPos, _itemCount, _extraEvent);
}
/// <summary>
/// Show Video Ad
/// </summary>
/// <param name="_adPos"></param>
/// <param name="_itemCount"></param>
public override void showVideoAd(string _adPos, int _itemCount = -1)
{
SDKCall("showVideoAd", _adPos, _itemCount);
}
#endregion
#region Ads isready
/// <summary>
/// banner isReady
/// </summary>
/// <returns></returns>
public override bool isBannerAdReady()
{
bool isReady = SDKCall<bool>("isBannerAdReady");
return isReady;
}
/// <summary>
/// Interstitial isReady
/// </summary>
/// <returns></returns>
public override bool isInterstitialAdReady()
{
bool isReady = SDKCall<bool>("isInterstitialAdReady");
return isReady;
}
/// <summary>
/// Reward isReady
/// </summary>
/// <returns></returns>
public override bool isRewardAdReady()
{
bool isReady = SDKCall<bool>("isRewardAdReady");
return isReady;
}
/// <summary>
/// FullScreen isReady
/// </summary>
/// <returns></returns>
public override bool isVideoAdReady()
{
bool isReady = SDKCall<bool>("isVideoAdReady");
return isReady;
}
#endregion
#region Set ads callback
/// <summary>
/// Set Banner Ad Callback
/// </summary>
/// <param name="_bannerCallback"></param>
public override void SetBannerAdCallback(AndroidBannerADTKGAdCallback _bannerCallback)
{
SDKCall("setBannerAdCallback", _bannerCallback);
}
/// <summary>
/// Set Interstital Ad Callback
/// </summary>
/// <param name="_interCallback"></param>
public override void setInterstitalAdCallback(AndroidInterADTKGAdCallback _interCallback)
{
SDKCall("setInterstitalAdCallback", _interCallback);
}
/// <summary>
/// Set reward Ad Callback
/// </summary>
/// <param name="_rewardCallback"></param>
public override void SetRewardAdCallback(AndroidRewardADTKGAdCallback _rewardCallback)
{
SDKCall("setRewardAdCallback", _rewardCallback);
}
/// <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)
{
SDKCall("setVideoAdCallback", _videoCallback);
}
#endregion
#region load ads
/// <summary>
/// load interstitial ad
/// (retry 3 times, per time interval 10s)
/// </summary>
public override void loadInterstitialAD()
{
SDKCall("loadInterstitialAD");
}
/// <summary>
/// load reward ad
/// (retry 3 times, per time interval 10s)
/// </summary>
public override void loadRewardAD()
{
SDKCall("loadRewardAD");
}
/// <summary>
/// load video ad
/// (retry 3 times, per time interval 10s)
/// </summary>
public override void loadVideoAD()
{
SDKCall("loadVideoAD");
}
#endregion
#endregion
#region Log Event
#region Normal
/// <summary>
/// onEvent
/// </summary>
/// <param name="_eventName"></param>
/// <returns></returns>
public override void onEvent(string _eventName)
{
SDKCall("onEvent", _eventName);
}
/// <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)
{
SDKCall("onEvent", _eventName, _key01, _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 override void onEvent(string _eventName, string _key01, string _value01, string _key02, string _value02)
{
SDKCall("onEvent", _eventName, _key01, _value01, _key02, _value02);
}
/// <summary>
/// onEvent
/// </summary>
/// <param name="_eventName"></param>
/// <param name="_keyValues"></param>
public override void onEvent(string _eventName, Dictionary<string, string> _keyValues)
{
SDKCall("onEvent", _eventName, Analytics.ToJavaHashMap(_keyValues));
}
#endregion
#region Level Event
/// <summary>
/// Level Start
/// </summary>
/// <param name="_levelId"></param>
public override void LevelStart(string _levelId)
{
SDKCall("levelStart", _levelId);
}
/// <summary>
/// Level end
/// </summary>
/// <param name="_levelId"></param>
public override void LevelEnd(string _levelId, bool _isSucc)
{
SDKCall("levelEnd", _levelId, _isSucc);
}
#endregion
#region Tracking Event
/// <summary>
/// Log Tracking Event
/// </summary>
/// <param name="_eventType"></param>
public override void LogTrackingEvent(TrackingEventType _eventType)
{
SDKCall("LogTrackingEvent", (int)_eventType);
}
#endregion
#endregion
#region Online Config
/// <summary>
/// get config - int
/// </summary>
/// <param name="_key"></param>
/// <returns></returns>
public override int GetConfigInt(string _key, int _default)
{
TKGDebugger.LogDebug("int _key : " + _key + " , _default : " + _default);
int newValue = SDKCall<int>("getConfigInt", _key, _default);
return newValue;
}
/// <summary>
/// get config - string
/// </summary>
/// <param name="_key"></param>
/// <returns></returns>
public override string GetConfigString(string _key, string _default)
{
TKGDebugger.LogDebug("string _key : " + _key + " , _default : " + _default);
string newValue = SDKCall<string>("getConfigString", _key, _default);
return newValue;
}
/// <summary>
/// get config - bool
/// </summary>
/// <param name="_key"></param>
/// <returns></returns>
public override bool GetConfigBool(string _key, bool _default)
{
TKGDebugger.LogDebug("bool _key : " + _key + " , _default : " + _default);
bool newValue = SDKCall<bool>("getConfigBool", _key, _default);
return newValue;
}
#endregion
#region Others (Common)
/// <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("setLogEnable", _enable);
}
#endregion
#region Others (Uncommon)
/// <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)
{
SDKCall("toast");
}
/// <summary>
/// push message
/// </summary>
public override void pushMsg()
{
SDKCall("pushMsg");
}
#endregion
#region common callback
public override void SetSDKCommonCallback(AndroidTKGCommonCalllback _commonCallback)
{
SDKCall("setTkgCallback", _commonCallback);
}
public override void SetUserSourceCallback(AndroidTKGUserSourceCalllback _userSourceCallback)
{
SDKCall("getUserSource", _userSourceCallback);
}
#endregion
}
}
#endregion
#endif