using System; using UnityEngine; using UnityEngine.Scripting; namespace WZ { public class ToponKwaiUtils { // 标准的topon版本 // private const string KwaiATInitManagerPath = "com.anythink.network.kwai.KwaiATInitManager"; // private const string IsInitPath = "j"; // private const string MediationInitCallbackPath = "com.anythink.core.api.MediationInitCallback"; // 定制的topon版本? private const string KwaiATInitManagerPath = "com.thinkup.network.kwai.KwaiTUInitManager"; private const string IsInitPath = "mm"; public const string MediationInitCallbackPath = "com.thinkup.core.api.MediationInitCallback"; private static AndroidJavaObject Instance = null; private static AndroidJavaObject GetInstance() { Instance ??= new AndroidJavaClass(KwaiATInitManagerPath).CallStatic("getInstance"); return Instance; } /// /// topon 是否已经初始化了 kwai /// /// public static bool IsInit() { try { return GetInstance().Get(IsInitPath); } catch (Exception e) { LoggerUtils.Error($"[ToponKwaiUtils] IsInit , {e.Message}"); } return false; } /// /// 通过 topon 去初始化 kwai /// /// kwai 的appid /// kwai 的app token /// 初始化的回调 public static void InitSDK(string appID, string appToken, Action callback) { try { var hashMap = new AndroidJavaObject("java.util.HashMap"); hashMap.Call("put", "app_id", appID); hashMap.Call("put", "app_token", appToken); GetInstance().Call("initSDK", GetAndroidApplication(), hashMap, new MediationInitCallback(callback)); } catch (Exception e) { LoggerUtils.Error($"[ToponKwaiUtils] InitSDK , {e.Message}"); callback.Invoke(false, e.Message); } } public static string GetAdapterVersion() { try { return GetInstance().Call("getAdapterVersion"); } catch (Exception e) { LoggerUtils.Error($"[ToponKwaiUtils] GetAdapterVersion , {e.Message}"); } return ""; } public static string GetNetworkVersion() { try { return GetInstance().Call("getNetworkVersion"); } catch (Exception e) { LoggerUtils.Error($"[ToponKwaiUtils] GetNetworkVersion , {e.Message}"); } return ""; } public static string GetNetworkName() { try { return GetInstance().Call("getNetworkName"); } catch (Exception e) { LoggerUtils.Error($"[ToponKwaiUtils] GetNetworkName , {e.Message}"); } return ""; } public static string GetNetworkSDKClass() { try { return GetInstance().Call("getNetworkSDKClass"); } catch (Exception e) { LoggerUtils.Error($"[ToponKwaiUtils] GetNetworkSDKClass , {e.Message}"); } return ""; } /// /// 获取Android的Application对象(android.app.Application) /// /// Android Application对象(AndroidJavaObject),若在非Android平台返回null private static AndroidJavaObject GetAndroidApplication() { // 只在Android平台执行 if (Application.platform != RuntimePlatform.Android) { return null; } try { var unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); var currentActivity = unityPlayer.GetStatic("currentActivity"); return currentActivity.Call("getApplication"); } catch (Exception e) { LoggerUtils.Error($"[ToponKwaiUtils] GetAndroidApplication , {e.Message}"); return null; } } } public class MediationInitCallback : AndroidJavaProxy { private readonly Action _callback; public MediationInitCallback(Action callback) : base(ToponKwaiUtils.MediationInitCallbackPath) { _callback = callback; } [Preserve] public void onSuccess() { _callback.Invoke(true, "success"); } [Preserve] public void onFail(string error) { _callback.Invoke(false, error); } } }