Files
JJBB/Assets/Project/Script/SDK/SdkIosBase.cs

112 lines
2.4 KiB
C#
Raw Normal View History

2024-08-23 15:49:34 +08:00
using UnityEngine;
#if UNITY_IPHONE || UNITY_IOS
using System.Runtime.InteropServices;
#endif
public abstract class SdkIosBase : SdkBase
{
#region Dll Interface
#if UNITY_IPHONE || UNITY_IOS
[DllImport("__Internal")]
private static extern string GetChannelNative();
[DllImport("__Internal")]
private static extern void LoginNative(bool isAuto);
[DllImport("__Internal")]
private static extern void LogoutNative();
[DllImport("__Internal")]
private static extern void SwitchAccountNative();
[DllImport("__Internal")]
protected static extern void PaymentNative(string payString);
[DllImport("__Internal")]
protected static extern void SubmitRoleNative(string roleString);
#else
private static string GetChannelNative()
{
return string.Empty;
}
private static void LoginNative(bool isAuto)
{
}
private static void LogoutNative()
{
}
private static void SwitchAccountNative()
{
}
protected static void PaymentNative(string payString)
{
}
protected static void SubmitRoleNative(string roleString)
{
}
#endif
#endregion
public override bool useGm
{
get { return false; }
}
public override void Dispose()
{
}
public static SdkBase CreateSdkLink()
{
SdkBase result;
var channel = AssetUpdateManager.channel;
if (channel == "Editor")
result = new SdkEditor();
else if (channel.StartsWith("Test"))
result = new SdkEmpty();
else if (channel.StartsWith("YuCheng"))
result = new SdkIosYuCheng();
else if (channel.StartsWith("Traceless01"))
result = new SdkIosTraceless01();
else if (channel.StartsWith("Traceless"))
result = new SdkIosTraceless();
else
{
Debug.LogError(string.Format("Unable to handle channel {0}! Controller falls into default!", channel));
result = null;
}
return result;
}
public override void Logout()
{
LogoutNative();
}
public override void LoginSdk(bool isAuto)
{
LoginNative(isAuto);
}
public override void SwitchAccount()
{
SwitchAccountNative();
}
public override void ShakeDevice()
{
// 尚未处理手机震动功能
}
public override void CloseGame()
{
// iOS不允许主动退出进程
}
}