主题
Skip to content 是否为欧盟用户,控制是否显示 GDPR 按钮(
基础常规接口
WARNING
💡ZMYSDKManager.I.Sdk.xxxx 接口名称
GameHelper.AppUtil
GameHelper.App
用户协议
C#
public virtual void GotoTermsServiceStatic(){}
TypeScript
// 跳转到隐私界面
public gotoPrivacyPolicyStatic() {}
隐私政策
C#
public virtual void GotoPrivacyPolicyStatic(){}
TypeScript
// 跳转到用户协议
public gotoTermsServiceStatic() {}
是否为欧盟用户,控制是否显示 GDPR 按钮(海外渠道,必接
)
WARNING
判断用户是否为欧盟地区的用户
如果是欧盟地区,需要在设置页面新增 GDPR 按钮,并在点击后弹出 GDPR 弹窗
SDK 内部还实现了第一次启动时弹出 GDPR 弹窗,此逻辑为 SDK 内部逻辑,无需接入
是否为欧盟用户,控制是否显示 GDPR 按钮
- false 非欧盟地区,不弹 GDPR,设置界面没有 GDPR 按钮
- true 欧盟地区,弹 GDPR,设置界面出现 GDPR 按钮,点击弹出 GDPR 界面
C#
public virtual bool IsRequestLocationInEeaOrUnknownStatic(){return default;}
展示 GDPR 用户协议
C#
public virtual void ShowGDPRDialogStatic(){}
调用此接口会触发 GDPR 弹框回调ZMYSDKManager.I.ShowGDPRResult
TypeScript
//监听 是否为欧盟地区 如果true 可以展示欧盟弹窗
//false 非欧盟地区,不弹 GDPR,设置界面没有 GDPR 按钮
//true 欧盟地区,弹 GDPR,设置界面出现 GDPR 按钮,点击弹出 GDPR 界面
public inEeaForGDPRListen(callback : (inEea : boolean) => void) {}
// 移除 监听
public inEeaForGDPRRemove() {}
//state: 0-欧盟弹窗关闭 1-欧盟弹窗展示 (注,如果回调了1,那么后续会有0)
public showGDPRDialogStatic(callback :(status : number) => void) {}
用户评价
C#
public virtual void ShowEvaluate(){}
TypeScript
//跳转系统评价
public goEvaluate() {}
应用内评价(应用内的应用市场评价)
C#
public virtual void ShowInAppReview(){}
TypeScript
//应用内评价(应用内的应用市场评价)
public showInAppReview() {}
反馈界面
C#
public virtual void ShowFeedback(){}
TypeScript
//跳转到反馈页面
public showFeedback() {}
分享
C#
// Sharetype:0-普通分享 1-好友房分享 2-分享图片 (末尾count表示 args数组中元素的个数)
public virtual void ShareApp(int Sharetype,string title,string content,string imgFile,string[] Args,int count){}
TypeScript
// 分享 文字 如果想分享appstore地址 可以将地址填入 content
public shareApp(opt: {
title: string,
content: string,
imagePath?: string, // 图片本地地址 不能是网络地址 而且绝对路径(选填)
success? : (params) => void}) {}
获取在线参数
C#
public virtual string GetOnlineConfigParams(string param){return default;}
TypeScript
//获取在线参数 param传入key
public getOnlineConfigParams(param : string) : string {}
获取设备 ID:deviceid
C#
public virtual string GetDeviceId(){return default;}
TypeScript
GameHelper.App.getDeviceId();
获取系统语言数值类型
语言代码编号 - 语言描述 0 - 英文 1 - 中文简体 2 - 中文繁体 3 - 法语 4 - 意大利语 5 - 德语 6 - 西班牙语 7 - 西班牙语(墨西哥) 8 - 荷兰语 9 - 俄语 10 - 韩语 11 - 日语 12 - 匈牙利语 13 - 葡萄牙语 14 - 阿拉伯语 15 - 挪威语 16 - 波兰语 17 - 土耳其语 18 - 乌克兰语 19 - 罗马尼亚语 20 - 保加利亚语 21 - 印地语 22 - 印度尼西亚语 23 - 越南语 24 - 孟加拉语 25 - 马来西亚语 26 - 泰语 27 - 瑞典语 28 - 芬兰语 29 - 捷克语 30 - 希腊语 31 - 丹麦语 32 - 阿塞拜疆语
C#
public virtual int GetSystemLanguage(){return default;}
TypeScript
GameHelper.App.getSystemLanguage();
是否显示适龄提示入口。 0 不显示
C#
public virtual int GetUnderAgeLimitLevelStatic(){return default;}
TypeScript
/**
* 是否显示适龄提示入口。 0不显示
* @return 0 8 12 16
*/
public getUnderAgeLimitLevelStatic() : number {
弹出适龄弹框
C#
public virtual void ShowEligibleAgeAlertStatic(){}
TypeScript
// 弹出适龄弹窗
public showEligibleAgeAlertStatic() {}
Unity独有-获取设备上方 safa 区域(如果设备是横屏,是 left)
C#
public virtual int GetNotchHeightStatic(){return default;}
Unity独有-获取设备下方 safa 区域(如果设备是横屏,是 right)
C#
public virtual int GetBottomNotchHeightStatic(){return default;}
显示退出弹框(Android 独有)
WARNING
返回键弹出退出弹框,点击确认后再退出
C#
public virtual void ShowExitDialog(){}
TypeScript
/**
* 展示退出弹框
*/
public showExitDialog() {}
获取当前 App 包名
C#
public virtual string GetPackageName(){return default;}
TypeScript
GameHelper.App.getPackageName();
获取当前版本号
C#
public virtual string GetVersionName(){return default;}
TypeScript
GameHelper.App.getVersionName();
获取 App 渠道号
C#
public virtual string GetAppChannel(){return default;}
TypeScript
GameHelper.App.getAppChannel();
获取 App 渠道 ID,用于游戏 A/B 测试。-1:未做 A/B 测试; 0:A/B 测试的 A 包; 1:A/B 测试的 B 包
C#
public virtual int GetAppChannelId(){return default;}
TypeScript
GameHelper.App.getAppChannelId();
获取服务器 zone 的时间,获取失败返回为:0。获取成功返回当前时区的时间戳,单位毫秒
C#
public virtual long GetServerTimeByServerTimeZoneStatic(){return default;}
TypeScript
/**
* 从服务器时区获取真实时间
* @return 获取失败返回为:0
* 获取成功返回当前时区的时间戳,单位为毫秒。
*/
public getServerTimeByServerTimeZoneStatic() : number {}
获取服务器时间,(0 时区为基准)
C#
public virtual long GetServerTimeStatic(){return default;}
TypeScript
//普通时间戳(0时区为基准)
public serverTimeStampWithoutTimeZone() : number {}
敏感词检测 传参:type:1-文本,2-图片,checkInfo 具体信息(如果是图片类型可以为 http 的 url,也可以为本地图片路径),scene 场景可选
C#
public virtual void CheckThirdSensitiveInfoStatic(int etype,string checkInfo,string scenestr){}
异步接口,调用此方法会触发ZMYSDKManager.I.SensitiveInfoResult
回调,结果会以SensitiveInfoResult
得形式方法。业务方需要检测code
和levelFlag
的值来判断是否通过检测。
只有当code=200
且levelFlag=true
时,检测才算通过
C#
/// <summary>
/// 敏感词检测回调
/// </summary>
public event Action<SensitiveInfoResult> SensitiveInfoResult
{
add
{
m_SensitiveInfoEventHandler += value;
}
remove
{
m_SensitiveInfoEventHandler -= value;
}
}
示例代码:
C#
void SensitiveInfoResult(SensitiveInfoResult result)
{
if ("200".Equals(result.code))
{
if (result.data.levelFlag)
{
reulText.text = "检测通过:合规!!";
}
else
{
reulText.text = "检测不通过!!!";
}
}
else
{
reulText.text = "检测不通过!!!,网络请求失败";
}
}
TypeScript
/**
* 游戏调用 url 三方检测敏感词吗,返回完整的接口响应response,网络错误或其他失败情况将返回“{}”
* @param type 1文本 2图片
* @param checkInfo 具体信息(文本类型为字符串、如果是图片类型为http的url)
* @param scene 场景类型 默认传空字符串即可
* levelFlag 为true 表示当前没有敏感词 false当前有敏感词 目前没有返回敏感词的参数
* fail 表示当前网络请求失败
* */
public checkThirdSensitiveInfoStatic(type : number,
checkInfo : string,
scene : string = "", success : (levelFlag : boolean) => void, fail : (error : string) => void) {}
调用手机震动
C#
// milliseconds: Android专有字段,设置振动的毫秒时长
// shakeLevel:震动强弱 0:低强度(默认), 1:中等强度, 2:高强度
public virtual void VibrateStatic(long milliseconds,int shakeLevel){}
TypeScript
/**
* 调用手机震动
* @param milliseconds 震动时间(毫秒)
* @param shakeLevel 震动强弱 0:低强度(默认), 1:中等强度, 2:高强度
*/
GameHelper.App.vibrateStatic(milliseconds: number, shakeLevel: number);
显示 Toast 提示
C#
public virtual void ShowToast(string msg){}
TypeScript
GameHelper.App.showToast(msg: string);
Unity独有-判断用户是否允许通知。0-没有开启,1-已经开启
C#
// 0-没有开启,1-已经开启
public virtual int IsAllowedUserNotificationStatic(){return default;}
Unity独有-呼起系统通知权限弹框(iOS 独有)(注意,说明 IOS 平台上不卸载情况下,只有第一次调用才会弹出来)
C#
public virtual void ShowAllowedUserNotificationStatic(){}
Unity独有-向系统取消通知(iOS 独有)
C#
public virtual void CancelUserNotificationInfoStatic(){}
Unity独有-向系统注册通知(iOS 独有)
C#
//向系统注册通知
//title-内容标题
//content-内容正文
//date-触发的时间必须19位数长度,格式2020-08-01 11:26:12。
//type循环周期,0-不重复,1-每天重复,2-每周重复,3-每月重复,4-每年重复
public virtual void CreateUserNotificationInfoStatic(string title,string content,string dateStr,int type){}
Unity独有-弹出系统数据跟踪权限弹框(iOS 独有)
C#
// 注意,说明IOS平台上不卸载情况下,只有第一次调用才会弹出来,后续掉了系统也不会弹框
public virtual void ShowAllowedUserATTrackStatic(){}
获取 App 审核状态 0:关闭审核(审核通过) 1:正在审核
C#
public virtual int GetDesignModeStatic(){return default;}
TypeScript
GameHelper.App.getDesignModeHaveFinish();
打开应用市场并跳转 App 详情页(Android 需要传packageName)
C#
// android传 package;iOS传空串
public virtual void GotoAppStore(string packageName){}
TypeScript
/**
* 打开应用市场并跳转App详情页
* @param packageName:需要跳转的App包名
* @param marketPackageName 需要跳转的应用商店包名,不传跳转默认商店(只有安卓需要 IOS只有一个应用商店)
* 谷歌的应用商店包名是com.android.vending
*/
GameHelper.App.gotoAppStore(packageName: string, marketPackageName? : string);
跳转超休闲游戏,只有 Oppo 市场部分游戏需要实现(Android 独有)
WARNING
在主页添加一个超休闲跳转按钮,按钮名称为:更多精彩
跳转超休闲游戏,只有 Oppo 市场部分游戏需要实现,按钮名称为:更多精彩
C#
public virtual void JumpLeisureSubject(){}
TypeScript
//Oppo 跳转休闲市场,按钮名称为:更多精彩
public openOppoGameCenterStatic() {}
启动实名认证结果监听
C#
private Action<CertificationCallbackResult> m_certificationHandler;
/// <summary>
/// 实名认证的结果回调
/// </summary>
public event Action<CertificationCallbackResult> CertificationCallbackCallback
{
add
{
m_certificationHandler += value;
}
remove
{
m_certificationHandler -= value;
}
}
/// <summary>
/// 实名认证的结果回调
/// </summary>
void certificationCallback(string data)
{
Debug.Log($"certificationCallback 回调:[{data}]");
CertificationCallbackResult result = LitJson.JsonMapper.ToObject<CertificationCallbackResult>(data);
m_certificationHandler?.Invoke(result);
}
TypeScript
//监听游戏启动时,平台弹出的实名认证
//实名完成,有实名的功能才会有这个回调,一般国内发布会有实名
//result 0未认证 1已认证
public onCertification(callback : (result : number) => void) : string;
public offCertification(uuid : string);
获取服务器配置的用户属性
此接口需要等待AF后台回调信息,返回时间不能保证,需要两次调用。
推荐获取方式:在初始化sdk之后间隔,立刻调用一次,如果没有获取到结果,间隔1分钟,再拉取一次。
下发的参数格式为一个json串,内容为
{
"user_param1":"用户分层",
"user_param2":"",
"user_param3":"",
"user_param4":""
}
// 这里用户分层的内容,为`iap`,`iaa`,`bid`,`install`,`organic` 这5个枚举值中的一个
C#
/// <summary>
/// 获取服务器配置的用户属性
/// </summary>
public string getUattStatic(){}
TypeScript
public getUattStatic() : string;
Unity独有-获取通信信息(iOS 独有)
C#
// 调用:ZMYSDKManager.I.Sdk.GetGlobeIntent
// 游戏在合适的时机里调用一次,例如:首次启动,后台切前台。返回值是个json格式字符串
// 例如 {"OpenAppInfo":"apples_huodong"} 那么此时表明有外链打开了app
// 游戏此时应当弹出对应的游戏页面处相关逻辑。(解析 key 为 OpenAppInfo 的内容)
public virtual string GetGlobeIntent(){return default;}
GameCenter-排行榜(iOS 独有)
C#
/// 获取gamecenter状态 & 回调
ZMYSDKManager.I.Sdk.getGameCenterStatus()
ZMYSDKManager.I.GetGameCenterStatus
C#
/// 上报排行榜信息 & 回调
ZMYSDKManager.I.Sdk.submitScoreToGameCenter(string leaderboardID, int score)
ZMYSDKManager.I.SubmitScoreToGameCenter
C#
/// 展示系统自带排行榜信息 & 回调
ZMYSDKManager.I.Sdk.showGameCenterLeaderboard(string leaderboardID)
ZMYSDKManager.I.ShowGameCenterLeaderboard
C#
/// 上报某个成就百分比信息 传参80,则为80%,100为100% & 回调
ZMYSDKManager.I.Sdk.submitAchievementToGameCenter(string achievementID, float percent)
ZMYSDKManager.I.SubmitAchievementToGameCenter
C#
/// 展示系统成就榜信息 & 回调
ZMYSDKManager.I.Sdk.showGameCenterAchievement(string achievementID)
ZMYSDKManager.I.ShowGameCenterAchievement
TypeScript
/**
* GameCenter相关 - iOS独有
*/
// 获取 Game Center 状态
// callback:0-用户未授权 1-用户已经授权
public getGameCenterStatus(callback : (status : number) => void)
// 上报排行榜信息
// leaderboardID - 排行榜id,score - 分数
// callback:0-失败 1-成功
public submitScoreToGameCenter(leaderboardID: string, score: number, callback : (value : string) => void)
// 展示系统自带排行榜信息
// leaderboardID - 排行榜id
// callback: 0-展示失败,1-正常展示,2-展示后关闭
public showGameCenterLeaderboard(leaderboardID: string, callback : (value : string) => void)
// 上报某个成就百分比信息,percent传参 80,则为 80%,100 为 100%
// achievementID - 成就ID
// callback: 0-失败 1-成功
public submitAchievementToGameCenter(achievementID: string, percent: number, callback : (value : string) => void)
// 展示系统成就榜信息(getGameCenterStatus 为1时使用)
// achievementID - 成就ID
// callback: 0-展示失败,1-正常展示,2-展示后关闭
public showGameCenterAchievement(achievementID: string, callback : (value : string) => void)
获取设备当前地区Code
- 获取设备当前地区Code & 回调
- 回调:标准的2位长度的国家码 示例: https://zh.wikipedia.org/wiki/ISO_3166-1二位字母代码
- 返回countryCode,如果查询不到,返回cn
C#
public virtual void getOsCountryCodeStatic() {}
ZMYSDKManager.I.OnlineIsoCountryCode
TypeScript
public getOsCountryCode(callback : (result : string) => void) : string
点我快速对接


