文章目录
SDK合规指南
1 文档修订记录
文档版本 | 文档更新日期 | 文档更新内容 |
---|---|---|
3.3.8 | 2021.05.28 | 初版 |
2 接入准备
推荐C#4 以上版本,如果游戏是4及以下版本,可能会无法支持新特性
推荐Unity2018及以上版本
2.1 添加文件
- 将文件
FYBase.unitypackage
与FYPrivacy.unitypackage
先后导入到您的Unity工程的Assets
文件夹下 - 导入方式:打开UNITY工程,菜单栏Assets=>Import Package=>Custom Package... ,之后选择文件导入工程
2.2 配置DLL文件平台属性
UNITY项目中,选择对应Dll文件,在Inspector面板=>Select platforms for plugin 勾选对应平台
如果已经配置,请忽略此步骤
- Assets\Plugins\FYBase\FYBase.dll勾选"Any Platform",并勾选"iOS"和“Android”以排除这2平台
- Assets\Plugins\FYBase\Android\FYBase.dll选择平台为"Android",注意"Any Platform"不要打钩
- Assets\Plugins\FYBase\iOS\FYBase.dll选择平台为"iOS",注意"Any Platform"不要打钩
- Assets\Plugins\FYPrivacy\FYPrivacy.dll选择平台为"Any Platform"
2.3 添加SDK配置
1.打开"星云平台->对接中心->SDK对接->SDK 列表->基础接入参数",找到 App ID、App Key、Company ID
2.在UNITY打开星云配置界面
3.将 App ID、App Key、Company ID 填入对应输入框,选择游戏屏幕朝向,点击确定
,完成配置
2.4 开启调试模式
1.将配置界面中的Debug
勾选并点击确定
,即可开启「调试模式」;取消勾选并点击确定
,即关闭「调试模式」。
2.开启「调试模式」会显示客户端的悬浮球,点击进入调试工具可以查看接口/回调的调用信息,具体调试方法可查看文档。
2.5 引入命名空间
游戏代码中引入以下命名空间,开始接入。
using FYPrivacy;
3 客户端接口与回调
接口接入的要诀?
- 必接接口一定要接入,选接接口根据需要接入
- 必传参数一定要传,能传的参数尽量都传
接口的回调何时注册?
- 第一种方式:在初始化回调成功后注册其余的回调
- 第二种方式:在每次调用对应接口前都预先注册对应的回调
- 综合使用:先使用第一种方式,之后如需改变再重新注册
3.1 客户端回调
1.授权回调 FYPRAuthCallback
-
为了防止在授权之前去获取设备信息,其他 SDK 的初始化、登录等接口,必须放在“授权回调”之后调用
-
使用方式:
// 授权回调
FYPrivacyBridge.Instance.FYPRAuthCallback = (isAgree,hasUsedChannelPrivacy) => {
if(isAgree){ // 用户已同意授权
// TODO: 执行其他 SDK 的初始化
// hasUsedChannelPrivacy:标识是否使用了第三方渠道的协议。true:是,false:否。如果为false,则游戏需显示“查看隐私协议按钮”,否则不显示。
// 游戏在母包阶段,需对此参数做处理。打成渠道包后,会根据实际情况返回相应的值。
// 未接入星云聚合SDK的游戏,可以忽略此参数对接。
}else{ // 用户不同意授权
// TODO: 直接退出游戏
}
};
3.2 启动应用(必接
)
1.方法
void Start(IList<string> protocolTitles = null, IDictionary<string, string> permissionInfos = null, string appId = "", string appKey = "")
2.说明
- 调用点:每次打开游戏后马上调用
- 为了防止在授权之前去获取设备信息,其他 SDK 的初始化、登录等接口,必须放在“授权回调”之后调用
- 首次会弹出“隐私协议”弹窗。后续会根据用户实际授权情况,及后台设置重新授权的情况,决定是否再次弹出
- 系统权限列表,需根据应用实际使用权限的情况传入
3.调用
IList<string> protocolTitles = new List<string>() {
"xxx用户协议","xxx隐私协议","xxx儿童隐私保护"
};
IDictionary<string, string> permissionInfos = new Dictionary<string, string>() {
{ "phone", "xxx" } //key为系统权限类型,务必按照该接口的参数要求传递(小写字母);value 权限友好说明,如“正常识别手机设备及账号安全”
};
FYPrivacyBridge.Instance.Start(protocolTitles, permissionInfos);
4.参数
参数 | 说明 | 是否必传 |
---|---|---|
protocolTitles | 界面中各协议标题,如需自定义协议的名称,请按顺序传3个标题。协议名称的顺序,需按照“用户协议”、“隐私协议”、“儿童隐私保护”的顺序传入。如果为数组为空或不传,则使用SDK提供的默认标题 | 否 |
permissionInfos | 展示系统权限列表(key:权限枚举值,value:用途说明),按数组顺序显示 | 否 |
appId | appId,预留参数,不传 | 否 |
appKey | appKey,预留参数,不传 | 否 |
- permissionInfos中key为以下指定参数:
权限【Key 】 |
具体权限 | 权限说明 |
---|---|---|
phone | READ_PHONE_STATE、CALL_PHONE、READ_CALL_LOG、WRITE_CALL_LOG、ADD_VOICEMAIL、USE_SIP、PROCES_OUTGOING_CALLS |
读取手机设备信息权限 如imei等硬件信息 |
camera | camera | 相机拍照权限 |
contacts | READ_CONTACTS、 WRITE_CONTACTS GET_ACCOUNTS |
读取手机联系人,通信记录 |
location | ACCESS_FINE_LOCATION、ACCESS_COARSE_LOCATION |
获取定位权限 |
microphone | RECORD_AUDIO |
手机麦克风权限 |
sms | SEND_SMS RECEIVE_SMS、 READ_SMS RECEIVE_WAP_PUSH、 RECEIVE_MMS |
读取手机短信权限 |
calendar | READ_CALENDAR 、WRITE_CALENDAR |
日历权限 |
sensors | BODY_SENSORS |
传感器权限 |
storage | READ_EXTERNAL_STORAGE 、WRITE_EXTERNAL_STORAGE |
存储权限 |
5.回调
- 授权回调
FYPRAuthCallback
3.3 查看协议(必接)
1.方法
void CheckAuth()
2.说明
- 调用点:在进入游戏后有个按钮用以触发查看协议,建议放在游戏内的设置菜单下。
3.调用
FYPrivacyBridge.Instance.CheckAuth();
4.参数
无
5.回调
- 暂无
4 原生端对接
4.1 iOS
4.1.1 导出XCODE工程
- 将UNITY项目导出为XCODE工程,然后就可以在Xcode开发工具上调试了
4.2 Andorid
4.2.1 导出Android工程
- 方式一:使用UNITY打包Android APK调试
- 方式二:将UNITY项目导出为Android Studio工程,然后就可以在Android Studio开发工具上调试了
5 F&Q
5.1 导出Android Studio或Xcode项目报错
该情况有可能是因为UNITY配置界面未配置完成,请查看该文档的添加SDK配置
部分,重新操作一次