mobcommonlib
概述
mobcommonlib是MobTech公司旗下6大SDK(ShareSDK、SMSSDK、MobLink、MobPush、秒验、Mob云验证)的Android平台都需要依赖的一个基础组件库。mobcommonlib组件库内封装了网络访问、debug日志打印、统一弹窗管理等具有高度重合性、统一性的功能。
以前使用mobtools的模块,可使用此模块替代。
根据国家法律法规要求,开发者在使用MobTech提供的各SDK产品时,需向终端用户展示MobTech的隐私服务协议,并获取用户的授权。从2020年2月12日开始,Mob所有SDK产品将引入隐私协议功能,APICloud平台下的隐私相关接口,在本文档中描述。
注意:请所有开发者务必按照本文档接入MobTech隐私服务流程,否则可能造成无法使用MobTech各SDK提供的相关服务。
MobTech隐私服务流程接入指导
MobTech隐私流程中,主要包含“隐私协议授权”与“隐私协议二次确认”功能,涉及到以下几个接口:
- 向终端用户展示MobTech隐私协议,并回传用户授权结果
- 隐私二次确认框开关设置
- 自定义隐私二次确认框UI
- 查询MobTech隐私协议内容
初始化mobcommonlib
在使用Mob任意SDK前,需首先引入mobcommonlib工具库。以SMSSDK为例:
var mobcommonlib = null;
var moduleSMSSDK = null;
apiready = function(){
mobcommonlib = api.require('mobcommonlib');
moduleSMSSDK = api.require('smssdk');
}
隐私协议授权
展示MobTech隐私协议
开发者需要首先展示MobTech隐私条款,建议可通过以下方式展示:
- 将MobTech隐私协议的URL嵌入app自身隐私协议描述中
- 在app隐私协议授权框的显著位置添加MobTech隐私协议标题,点击可查看协议内容
- 在app自身隐私协议中嵌入MobTech隐私协议内容
查询隐私协议
隐私协议查询接口可提供两种类型:富文本/URL。开发者可根据需要选择:
// param中的key命名不能改变,{1:URL,2:富文本}
var param = {type:1};
mobcommonlib.getPrivacyPolicyAsync(param, function(ret, err){
if (err !== null && err !== undefined && err !== '') {
// 错误消息示例:{"msg":"MobTech policy not granted.","code":600}
alert(eTitle + JSON.stringify(err));
} else {
// 正常消息示例:{"content":"http://www.mob.com/privacy/policy/index.html", "title":"服务协议", "ppVersion":1, "timestamp":23124353131}
alert(sTitle + JSON.stringify(ret));
}
});
提交隐私协议授权结果
用户做出隐私授权操作(无论接收还是拒绝)后,都需要将授权结果回传给SDK,否则将可能造成无法使用MobTech提供的各SDK服务的问题。
// param中的key命名不能改变,{true:同意,false:拒绝}
var param = {granted:rst};
mobcommonlib.submitPolicyGrantResult(param, function(ret, err){
if (err !== null && err !== undefined && err !== '') {
// 错误消息示例:{"msg":"Service not found.","code":404}
alert(eTitle + JSON.stringify(err));
} else {
// 正常消息示例:{"result":"success"}
alert(sTitle + JSON.stringify(ret));
}
});
隐私二次确认框
在以下情况下,个别接口会默认向用户展示隐私协议二次确认框:
- 开发者未反馈用户隐私协议授权结果
- 用户拒绝隐私协议
我们同时提供了接口,由开发者设置是否允许展示该弹框。
该弹框有默认样式,我们同样提供了接口,由开发者自定义该弹框的UI样式。
隐私二次确认框开关设置
// param中的key命名不能改变,{true:同意,false:拒绝}
var param = {allowDialog:true};
mobcommonlib.setAllowDialog(param);
注意:必须在使用SDK接口前,调用该接口进行设置,否则不生效。
自定义隐私二次确认框UI
// param中的key命名不能改变,{bgColor:弹框背景色名称,acceptColor:同意按钮背景色名称,rejectColor:拒绝按钮背景色名称}
// 目前支持颜色值有:white,black,blue,red,holo_green_light,holo_gray_light,holo_orange_light,holo_purple
var param = {bgColor:"white", acceptColor:"holo_orange_light", rejectColor:"holo_green_light"};
mobcommonlib.setPolicyUi(param);
注意:必须在使用SDK接口前,调用该接口进行设置,否则不生效。