Files
Main/Assets/Plugins/References/FuncellSDK/SDK/Funcellscript/FuncellSDKIOS.cs
2025-01-25 04:38:09 +08:00

209 lines
6.1 KiB
C#

using UnityEngine;
using System.Collections;
using System;
using System.Runtime.InteropServices;
#if UNITY_IPHONE
namespace Thousandto.CoreSDK
{
public class FuncellSDKIOS : FuncellSDK
{
public FuncellSDKIOS()
{
UseSDK = GetUseSDK();
SDKInitFinish = GetSDKInitFinish();
}
#region
public override void ReInitSDK()
{
SDKInitFinish = GetSDKInitFinish();
}
protected override void CallFunc(RequestOptType funcType, params string[] args)
{
switch (funcType)
{
case RequestOptType.ReqExit:
OnExitGame();
break;
case RequestOptType.ReqLogin:
lsLogin();
break;
case RequestOptType.ReqLogout:
lsLogout();
break;
case RequestOptType.ReqSwitchLogin:
lsSwitchAccount();
break;
case RequestOptType.ReqPay:
string iosPayJson = args[0];
//Debug.LogError("--->>> IOS Pay Json = " + iosPayJson);
lsPay(iosPayJson);
break;
}
}
public override void CopyToClipboard(string text)
{
lsCopyToClipboard(text);
}
public override void GetPhoto(int type, string path, int width, int height)
{
get_photo(type, width, height, path);
}
/// <summary>
/// 是否是刘海屏
/// </summary>
/// <returns></returns>
public override bool HasNotchInScreen()
{
return lsHasNotchInScreen();
}
//分享
public override void DoShare(string url)
{
lsShare(url);
}
//评分
public override void DoRate(string appStoreUrl)
{
lsStoreReView();
}
/// <summary>
/// 获取IDFA
/// </summary>
public override string GetADID()
{
return lsGetIDFA();
}
#endregion
#region
public static void OpenUrlByBrowser(string url)
{
#if UNITY_IPHONE && !UNITY_EDITOR
lsOpenUrlByBrowser(url);
#else
#endif
}
public static void OpenWebView(string url)
{
#if UNITY_IPHONE && !UNITY_EDITOR
lsOpenWebView(url);
#else
#endif
}
public static bool GetSDKInitFinish()
{
#if UNITY_IPHONE && !UNITY_EDITOR
return lsGetSDKInitFinish();
#else
return false;
#endif
}
public static bool GetUseSDK()
{
#if UNITY_IPHONE && !UNITY_EDITOR
return lsUseSDK();
#else
return false;
#endif
}
#endregion
public static void DealMessage(PLATFORM_DEAL_TYPE type, string mess)
{
#if UNITY_IPHONE && !UNITY_EDITOR
switch (type)
{
case PLATFORM_DEAL_TYPE.PDT_USERCENTER:
break;
case PLATFORM_DEAL_TYPE.PDT_WEBBBS:
break;
case PLATFORM_DEAL_TYPE.PDT_WEBBACKUP:
break;
case PLATFORM_DEAL_TYPE.PDT_WEBTOTAL:
break;
case PLATFORM_DEAL_TYPE.PDT_TOTAL_CREATEROLE:
break;
case PLATFORM_DEAL_TYPE.PDT_TOTAL_ENTERGAME:
break;
case PLATFORM_DEAL_TYPE.PDT_LEVEL_CHANGE:
break;
case PLATFORM_DEAL_TYPE.PDT_GAME_ACTIVE:
break;
case PLATFORM_DEAL_TYPE.PDT_WEBURL:
break;
case PLATFORM_DEAL_TYPE.PDT_COMPLETED_TUTORIAL:
break;
}
#endif
}
public bool OnExitGame()
{
#if UNITY_IPHONE && !UNITY_EDITOR
return lsExitGame();
#else
Application.Quit();
return true;
#endif
}
#region
//----------------------C 调用的接口-------------------------
//获取SDK初始化完成标记
[DllImport("__Internal")]
private static extern bool lsGetSDKInitFinish();
//获取是否使用SDK
[DllImport("__Internal")]
private static extern bool lsUseSDK();
[DllImport("__Internal")]
private static extern bool lsLogin(); //登录接口处理
[DllImport("__Internal")]
private static extern void lsPay(string json);
[DllImport("__Internal")]
private static extern void lsLogout(); //由游戏层调用来的退出SDK的登录账号的注销操作
[DllImport("__Internal")]
private static extern void lsSwitchAccount(); //由游戏层调用来的切换账号的操作
//------------- 下面为可调用接口,也可以不用---------------
[DllImport("__Internal")]
private static extern void lsOpenUrlByBrowser(string url); //用外部的浏览器打开的一个网站接口
[DllImport("__Internal")]
private static extern void lsOpenWebView(string url); //打开一个内嵌web地址
[DllImport("__Internal")]
private static extern bool lsExitGame(); //增加一个关闭游戏的接口
[DllImport("__Internal")]
private static extern void lsCopyToClipboard(string text);
//取图片
[DllImport("__Internal")]
private static extern void get_photo(int type, int width, int height, string saveFilePath);
//评分
[DllImport("__Internal")]
private static extern void lsStoreReView();
//分享
[DllImport("__Internal")]
private static extern void lsShare(string url);
//是否是刘海屏
[DllImport("__Internal")]
private static extern bool lsHasNotchInScreen();
//获取IDFA
[DllImport("__Internal")]
private static extern string lsGetIDFA();
#endregion
}
}
#endif