using System.Collections.Generic; using System; using UnityEngine; // using BF.UNet.Utility; // using BF.NativeCore.Platform; namespace BF { // [System.Serializable] // public class ReqVsn // { // public string vsn; // public string appName; // public int sid; // public ReqVsn(string vsn, string appName, int sid) // { // this.vsn = vsn; // this.appName = appName; // this.sid = sid; // } // // public ReqVsn(UNetUtility.ReqVsn reqVsn) // // { // // appName = reqVsn.appName; // // sid = reqVsn.sid; // // vsn = reqVsn.vsn; // // } // } // [System.Serializable] // public class RspVsn // { // /// // /// 是否请求成功 // /// // public bool isSuccess; // /// // /// 请求失败后的错误消息;成功时,没有此消息 // /// // public string errorMsg; // public string vsn; // public List cdnUrl; // public string md5; // public string storeUrl; // // public RspVsn(UNetUtility.RspVsn rspVsn) // // { // // isSuccess = rspVsn.isSuccess; // // errorMsg = rspVsn.errorMsg; // // vsn = rspVsn.vsn; // // cdnUrl = rspVsn.cdnUrl; // // md5 = rspVsn.md5; // // storeUrl = rspVsn.storeUrl; // // } // } public class SDKManager : ManagerBase { //新版本登陆,支付,第三方辅助SDK public BFLoginSDKManager BFLoginSDKMgr { get; private set; } public BFPaySDKManager BFPaySDKMgr { get; private set; } public BFRuPaySDKManager BFRuPaySDKMgr { get; private set; } public BFHWPaySDKManager BFHWPaySDKMgr { get; private set; } public IAPManager IosPaySDKMgr { get; private set; } // public BFAdmobSDKManager BFAdmobSDKMgr { get; private set; } // public BFIronSourceSDKManager BFIronSourceSDKMgr { get; private set; } // public BFHWAdSDKManager BFHWAdSDKMgr { get; private set; } public BFNativeSDKManager BFNativeSDKMgr { get; private set; } public BFThirdReportSDKManager BFThirdReportSDKMgr { get; private set; } public NotificationSDKManager NotificationSDKMgr { get; private set; } public DeepLinkManager DeepLinkMgr { get; private set; } static SDKManager instance; public static SDKManager Create() { BFLog.LogAssert(instance == null, "This method only allows BFMain to call once"); instance = new SDKManager(); return instance; } SDKManager() { } public override void Init() { base.Init(); //初始化SDK部分 var sdkGo = UnityEngine.GameObject.Find("SDKManager"); if (sdkGo == null) { sdkGo = new GameObject("SDKManager"); } // Deeplink DeepLinkMgr = sdkGo.AddComponent(); // native交互管理,需要最先初始化,其他地方可能要调用此类里面的方法 BFNativeSDKMgr = sdkGo.AddComponent(); // 登陆 BFLoginSDKMgr = sdkGo.AddComponent(); // 支付 BFPaySDKMgr = sdkGo.AddComponent(); BFRuPaySDKMgr = sdkGo.AddComponent(); BFHWPaySDKMgr = sdkGo.AddComponent(); // 广告 // BFAdmobSDKMgr = sdkGo.AddComponent(); // BFIronSourceSDKMgr = sdkGo.AddComponent(); // 三方上报 BFThirdReportSDKMgr = sdkGo.AddComponent(); IosPaySDKMgr = IAPManager.Instance; // MAX SDK安卓在这里主动初始化,IOS版会在ATT弹窗后初始化 #if UNITY_ANDROID && !UNITY_EDITOR AdManager.Instance.Init(); #endif // 华为广告 // BFHWAdSDKMgr = sdkGo.AddComponent(); // 本地推送 // NotificationSDKMgr = sdkGo.AddComponent(); GameObject.DontDestroyOnLoad(sdkGo); #if UNITY_IOS || UNITY_IPHONE // BFUMPManager.InitGDPR(); // 这里不显示GDPR就直接显示ATT,如果GDPR要显示,则这里不要同时显示ATT,ATT会在GDPR显示后处理 // 这里延迟一帧处理是因为启动后会同时显示多个权限弹窗,包括,网络,推送,还有ATT,这种情况下ATT可能会不显示,到下一次启动才显示,这种情况下也可能会导致苹果拒审 BFMain.Instance.OneShotManager.AddOneShot(()=>{ BFMain.Instance.GameLaunchMgr.ShowIOSATTrack(); }); #elif UNITY_ANDROID && !UNITY_EDITOR // if (BFPlatform.IsSupportGDPR()) // { // BFMain.Instance.SDKMgr.BFNativeSDKMgr.InitGDPR(); // } #endif } public override void Destroy() { base.Destroy(); instance = null; } /// /// 返回当前系统语言,格式为:语言码_地区码,例如: zh_CN /// 语言码和国家/地区码当前系统都是返回的二位码 /// 语言码 https://omegat.sourceforge.io/manual-latest/zh_CN/appendix.languages.html /// 国家/地区码 http://www.mohrss.gov.cn/SYrlzyhshbzb/zhuanti/jinbaogongcheng/Jbgcbiaozhunguifan/201112/t20111206_47429.html /// public string GetLanguage() { return NativeUtils.GetLanguageAndCountry(); } public string GetTimeZone() { return NativeUtils.GetTimeZone(); } } }