Files
tysdk-intergration/sdk-intergration/Packages/tysdk/Runtime/UnityBridgeFunc.cs
2025-01-17 16:15:48 +08:00

398 lines
13 KiB
C#

using System;
using System.Runtime.InteropServices;
using UnityEngine;
namespace tysdk
{
public static class UnityBridgeFunc
{
#if UNITY_EDITOR
//初始化sdk
public static void InitSDK(){}
//更新登录支付域名
public static void UnityResetServerUrl(string url){}
//登录
public static void UnityLoginByTokenFun(string token){}
public static void UnityLogin(EAccoutType accoutType){}
public static void LinkAccount(EAccoutType accoutType){}
public static void UnlinkAccount(EAccoutType accoutType){}
public static void LinkCheck(EAccoutType accoutType){}
public static void UnityGetIdentityFun(string type){}
public static void UnityLogOutByChannel(EAccoutType accoutType){}
//支付new
public static void UnityKnowNew(string productId, string productPrice, string productName,
string productCount, string prodorderId, string appInfo, string pType) { }
//支付
public static void UnityKnow(String productId, String productName, String productCount,
String prodorderId, String appInfo) {}
//获取商品列表
public static void GetSKUList() { }
//打点
public static void SetGaUserInfo(string userId){}
public static void SetGaCommonInfo(string SetGaCommonInfo){}
public static void GAReportParams(int type, string eventstr, string paramstr){}
//ATT
public static void RequestATT(){}
public static int GetATT() {return 1;}
public static void Review() { }
public static void FBShareLink(string title, string content, string url) { }
public static void MessengerShareLink(string title, string content, string url) { }
#elif UNITY_ANDROID
private static string SDK_CLASS = "com.unity3d.player.SDKManager";
//初始化sdk
public static void InitSDK(){
using(var sdkManager = new AndroidJavaClass(SDK_CLASS))
{
using(var activityCls = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
{
var activity = activityCls.GetStatic<AndroidJavaObject>("currentActivity");
sdkManager.CallStatic("InitSDK", activity);
}
}
}
//更新登录支付域名
public static void UnityResetServerUrl(string url)
{
using(var sdkManager = new AndroidJavaClass(SDK_CLASS))
{
sdkManager.CallStatic("UnityResetServerUrl", url);
}
}
//登录
public static void UnityLoginByTokenFun(string token)
{
using(var sdkManager = new AndroidJavaClass(SDK_CLASS))
{
sdkManager.CallStatic("UnityLoginByTokenFun", token);
}
}
public static void UnityLogin(EAccoutType accoutType)
{
using(var sdkManager = new AndroidJavaClass(SDK_CLASS))
{
sdkManager.CallStatic("UnityLogin", accoutType.ToString());
}
}
public static void UnityGetIdentityFun(string type)
{
using(var sdkManager = new AndroidJavaClass(SDK_CLASS))
{
sdkManager.CallStatic("UnityGetIdentityFun", type);
}
}
public static void UnityLogOutByChannel(EAccoutType accoutType)
{
using(var sdkManager = new AndroidJavaClass(SDK_CLASS))
{
sdkManager.CallStatic("UnityLogOutByChannel", accoutType.ToString());
}
}
public static void LinkAccount(EAccoutType accoutType)
{
using(var sdkManager = new AndroidJavaClass(SDK_CLASS))
{
string userId = TYSdkFacade.TYAccountInfo.strUserId;
sdkManager.CallStatic("LinkAccount", accoutType.ToString(), userId);
}
}
public static void UnlinkAccount(EAccoutType accoutType)
{
using(var sdkManager = new AndroidJavaClass(SDK_CLASS))
{
sdkManager.CallStatic("UnlinkAccount", accoutType.ToString());
}
}
public static void LinkCheck(EAccoutType accoutType)
{
using(var sdkManager = new AndroidJavaClass(SDK_CLASS))
{
sdkManager.CallStatic("LinkCheck", accoutType.ToString());
}
}
//支付new
public static void UnityKnowNew(string productId, string productPrice, string productName,
string productCount, string prodorderId, string appInfo,string pType)
{
using(var sdkManager = new AndroidJavaClass(SDK_CLASS))
{
sdkManager.CallStatic("UnityKnowNew", productId, productPrice, productName,
productCount, prodorderId, appInfo,pType);
}
}
//支付
public static void UnityKnow(String productId, String productName, String productCount, String prodorderId, String appInfo)
{
using(var sdkManager = new AndroidJavaClass(SDK_CLASS))
{
sdkManager.CallStatic("UnityKnow", productId, productName, productCount, prodorderId, appInfo);
}
}
//获取商品列表
public static void GetSKUList()
{
UnityEngine.Debug.Log("UnityBridgeFunc.GetSKUList()");
using(var sdkManager = new AndroidJavaClass(SDK_CLASS))
{
sdkManager.CallStatic("thirdExtend");
}
}
//打点
public static void SetGaUserInfo(string userId)
{
using(var sdkManager = new AndroidJavaClass(SDK_CLASS))
{
sdkManager.CallStatic("SetGaUserInfo", userId);
}
}
public static void SetGaCommonInfo(string SetGaCommonInfo)
{
using(var sdkManager = new AndroidJavaClass(SDK_CLASS))
{
sdkManager.CallStatic("SetGaCommonInfo", SetGaCommonInfo);
}
}
public static void GAReportParams(int type, string eventstr, string paramstr)
{
using(var sdkManager = new AndroidJavaClass(SDK_CLASS))
{
sdkManager.CallStatic("GAReportParams", type, eventstr, paramstr);
}
}
//ATT
public static void RequestATT(){}
public static int GetATT() {return 1;}
public static void Review()
{
using(var sdkManager = new AndroidJavaClass(SDK_CLASS))
{
sdkManager.CallStatic("Review");
}
}
public static void FBShareLink(string title, string content, string url)
{
using(var sdkManager = new AndroidJavaClass(SDK_CLASS))
{
sdkManager.CallStatic("FBShareLink", title, content, url);
}
}
public static void MessengerShareLink(string title, string content, string url)
{
using(var sdkManager = new AndroidJavaClass(SDK_CLASS))
{
sdkManager.CallStatic("MessengerShareLink", title, content, url);
}
}
#elif UNITY_IOS
//更新登录支付域名
[DllImport("__Internal")]
public static extern void UnityResetServerUrl(string url);
//登录
[DllImport("__Internal")]
public static extern void UnityLoginByTokenFun(string token);
public static void UnityLogin(EAccoutType accoutType)
{
switch (accoutType)
{
case EAccoutType.hwGoogle:
UnityLoginByGoogle();
break;
case EAccoutType.hwFacebook:
UnityLoginByFacebook();
break;
case EAccoutType.hwGuest:
UnityLoginByGuest();
break;
case EAccoutType.Apple:
UnityLoginByApple();
break;
}
}
[DllImport("__Internal")]
public static extern void UnityLoginByGuest();
[DllImport("__Internal")]
public static extern void UnityLoginByGoogle();
[DllImport("__Internal")]
public static extern void UnityLoginByFacebook();
[DllImport("__Internal")]
public static extern void UnityLoginByApple();
[DllImport("__Internal")]
public static extern void UnityGetIdentityFun(string type);
[DllImport("__Internal")]
public static extern void UnityLoginOut();
public static void UnityLogOutByChannel(EAccoutType accoutType)
{
switch (accoutType)
{
case EAccoutType.hwGoogle:
UnityLogoutGoogle();
break;
case EAccoutType.hwFacebook:
UnityLogoutFacebook();
break;
case EAccoutType.hwGuest:
UnityLogoutGuest();
break;
case EAccoutType.Apple:
UnityLogoutApple();
break;
}
}
[DllImport("__Internal")]
private static extern void UnityLogoutGoogle();
[DllImport("__Internal")]
private static extern void UnityLogoutFacebook();
[DllImport("__Internal")]
private static extern void UnityLogoutGuest();
[DllImport("__Internal")]
private static extern void UnityLogoutApple();
public static void LinkAccount(EAccoutType accoutType)
{
switch (accoutType)
{
case EAccoutType.hwGoogle:
LinkGoogle();
break;
case EAccoutType.hwFacebook:
LinkFacebook();
break;
case EAccoutType.Apple:
LinkApple();
break;
}
}
public static void UnlinkAccount(EAccoutType accoutType)
{
switch (accoutType)
{
case EAccoutType.hwGoogle:
UnlinkGoogle();
break;
case EAccoutType.hwFacebook:
UnlinkFacebook();
break;
}
}
[DllImport("__Internal")] private static extern void LinkGoogle();
[DllImport("__Internal")] private static extern void UnlinkGoogle();
[DllImport("__Internal")] private static extern void LinkFacebook();
[DllImport("__Internal")] private static extern void UnlinkFacebook();
[DllImport("__Internal")] private static extern void LinkApple();
[DllImport("__Internal")] private static extern void UnlinkApple();
public static void LinkCheck(EAccoutType accoutType)
{
switch (accoutType)
{
case EAccoutType.hwGoogle:
IsLinkedGoogle();
break;
case EAccoutType.hwFacebook:
IsLinkedFacebook();
break;
case EAccoutType.Apple:
IsLinkedApple();
break;
}
}
[DllImport("__Internal")] private static extern void IsLinkedGoogle();
[DllImport("__Internal")] private static extern void IsLinkedFacebook();
[DllImport("__Internal")] private static extern void IsLinkedApple();
//支付
[DllImport("__Internal")]
public static extern void UnityKnow(string userId, string productId, string productPrice, string productName,
string productCount, string prodorderId, string appInfo);
//获取商品列表
[DllImport("__Internal")]
public static extern void GetSKUList();
//打点
[DllImport("__Internal")]
public static extern void SetGaUserInfo(string userId);
[DllImport("__Internal")]
public static extern void SetGaCommonInfo(string SetGaCommonInfo);
[DllImport("__Internal")]
public static extern void GAReportParams(int type, string eventstr, string paramstr);
//ATT
[DllImport("__Internal")]
public static extern void RequestATT();
[DllImport("__Internal")]
public static extern int GetATT();
[DllImport("__Internal")]
public static extern void FBShareLink(string title, string content, string url);
[DllImport("__Internal")]
public static extern void MessengerShareLink(string title, string content, string url);
#endif
}
}