bdPush

bdPush模块封装了百度慧推推送平台的SDK,使用此模块可实现接收推送通知和透传消息功能

使用百度慧推的基本流程说明:

1.在百度慧推网站注册帐号,并创建应用,获取APP_KEY和SECKEY

2.在初始化的时候传入APP_KEY和SECKEY

3.前端调用bdPush模块的初始化,即可完成SDK的初始化。

通用结果码:

接口的err参数会返回结果错误码,错误码含义如下:

-5:未绑定的设备。

-4:内部Json格式错误。

-3:网络异常导致的失败。

-2:内部逻辑错误。

-1:其他错误。

通用错误码:

接口的err参数会返回通用错误码,错误码含义如下:

1:接口方法名为空。

2:未找到对应的接口方法。

3:内部错误。

4:SDK初始化失败。

12:因未设置同意隐私协议,导致的调用失败。

接口说明:

1.初始化

var bdpush = api.require(‘bdPush’);

var param = {appKey:‘xxx’,secKey: ‘xxx’};

bdpush.init(param);

参数说明:

String appkey和String appsec用于服务器的访问校验,这是分配给渠道集成我们SDK的凭证。这两个值在测试环境和正式环境是不一样的。 集成之前请向我们申请。这两个 key 是和集成宿主的包名和签名唯一关联,测试接口时请确保宿主的签名信息和申请这两个 key 时的签名一致。

2.延迟初始化

根据传入的参数使初始化行为延迟一段时间开始,注意该接口与上面的初始化接口只能调用一个。

var bdpush = api.require(‘bdPush’);

var param = {appKey:’xxx’,secKey:’xxx’,delay:10};

bdpush.initDelay(param);

如果在同意隐私协议前调用初始化接口,初始化过程会被中止,并在调用同意隐私协议方法后恢复。 参数说明: int delay 用于延迟初始化的时间,单位是秒,初始化行为将于delay秒后开始执行。 appkey和appsec用于服务器的访问校验,这是分配给渠道集成我们SDK的凭证。

3.绑定设备ID

通过调用此接口绑定宿主应用定义的设备ID,用于ID映射。

var bdpush = api.require(‘bdPush’);

var param = {did:’xxx’ };

bdpush.setDid(param);

参数说明: String did为宿主应用用于标识本设备的唯一Id值。请尽早绑定设备ID以方便进行ID映射(可以在调用初始化接口前)

4.设置用户同意隐私协议接口

通过调用此接口告知慧推SDK用户是否同意了隐私协议。

在同意隐私协议前,所有对本SDK的调用将不会生效,具有返回值的方法会获取到空的返回值,具有错误码的接口会接收到错误码12(见通用错误码),初始化过程会在delay结束后被中止,直到同意了隐私协议。

var bdpush = api.require(‘bdPush’);

var param = {agree:true};

bdpush.setAgreePolicy(param);

参数说明:

boolean agree为用户是否同意了隐私协议,true为同意,false为不同意,如果不设置隐私协议,可能在SDK实际运行中由于某些需要授权的权限问题导致部分功能失效。 合入慧推SDK的App需要在自身隐私协议中设置慧推隐私协议,隐私协议链接为:http://sofire.bdstatic.com/push/privacy.html

5.设置通知状态栏小图标

var bdpush = api.require(‘bdPush’);

var param = {small_icon:xxx };

bdpush.setSmallIcon(param);

该方法用于设置通知状态栏小图标。 参数说明: small_icon:需要设置的图标文件资源的名称

6.设置静默时间段

var bdpush = api.require(‘bdPush’);

var param = {startHour:xxx, durationHour:xxx};

bdpush.setSilentTime(param, function(ret,err) {

var result = ret.result;

});

该方法用于设置静默时间。请于init方法后调用。若不设置静默时间,默认静默时间为晚11点到次日7点。 参数说明: int startHour是静默时间的开始时间值,24小时制,如传入13表示静默时间从下午1时开始。 int durationHour是静默时间的持续时间,单位为小时,如静默2小时则传入2。

7.检查Push在线状态

var bdpush = api.require(‘bdPush’);

bdpush.isPushEnabled(function(ret,err) {

var result = ret.result;

});

该方法用于检查当前Push在线状态。请于init方法后调用。 返回boolean型的结果,true表示当前Push服务在线,false表示当前Push服务不在线。错误码含义见通用错误码。

8.获取PushUid

var bdpush = api.require(‘bdPush’);

bdpush.getPushUid(function(ret,err) {

var pushUid = ret.result;

});

该方法用于获取当前设备的Push Uid,该Id用于对设备进行唯一映射。 返回值为当前设备的PushUid。 错误码含义见通用错误码。

9.开启/关闭Push服务

var bdpush = api.require(‘bdPush’);

var param = {isActive:true };

bdpush.setPushActive(param,function(ret,err) {

var result = ret.result;

});

该方法用开启或关闭当前的Push服务状态,默认为开启。 如果不确认当前的服务开启或关闭状态,请调用该接口将状态设置为希望的值。 返回值结果码含义如下:

2:Push服务被设置为开启。

1:Push服务被设置为关闭。

其他结果码见通用结果码。 错误码含义见通用错误码。 isActive是要设置的Push服务开启/关闭状态的值。

10.开启/关闭调试信息

var bdpush = api.require(‘bdPush’);

var param = {debug:true };

bdpush.setDebug(param,function(ret,err) {

var result = ret.result;

});

该方法用开启或关闭调试信息输出。如果不调用该方法,默认值为false。 将debug开关设为true之后,将会在logcat中输出TAG为“PUSH_SDK”的调试信息。 debug是要设置的调试信息开关的值。

11.设置别名

var bdpush = api.require(‘bdPush’);

var param = {alias:’xxx’ };

bdpush.setAlias(param,function(ret,err) {

var result = ret.result;

});

该方法用设置别名,一台设备只能设置一个别名 alias是要设置的别名。 返回结果码含义如下: 0 - 成功 10000 - 失败:设备未注册 100001 - 绑定失败:别名格式不符合规范 其他结果码见通用结果码。

12.获取别名

var bdpush = api.require(‘bdPush’);

bdpush.getAliasN(function(ret,err) {

var alias = ret.result;

});

该方法用获取别名。 返回结果,可以通过Json进行解析,其中0字段为int类型结果码,1字段为别名。 结果码含义如下:

0 - 成功

10000 - 失败:设备未注册

110001 - 查询别名出错,原因:设备尚未绑定别名

其他结果码见通用结果码。

13.删除别名

var bdpush = api.require(‘bdPush’);

bdpush.deleteAlias(function(ret,err) {

var result = ret.result;

});

该方法用删除别名。 返回结果码含义如下:

0 - 成功

10000 - 失败:设备未注册

100001 - 绑定失败:别名格式不符合规范

其他结果码见通用结果码。

14.添加标签

var bdpush = api.require(‘bdPush’);

var param = {tags:’tag1,tag2' };

bdpush.addTags(param,function(ret,err) {

var result = ret.result;

});

该方法用添加标签,可以添加多个标签,多个标签用逗号分隔。 返回结果码含义如下:

0 - 成功

10000 - 失败:设备未注册

200001 - 失败,标签不符合规范

200002 - 失败,此设备标签数量超过上限

200003 - 失败,增加或更新的标签为空

200004 - 失败,每次最多设置和更新100个标签

其他结果码见通用结果码。

15.删除标签

var bdpush = api.require(‘bdPush’);

var param = {tags:’tag1,tag2' };

bdpush.deleteTags(param,function(ret,err) {

var result = ret.result;

});

该方法用删除标签,可以删除多个标签,多个标签间用逗号分隔。 返回结果码含义如下:

0 - 成功

10000 - 失败:设备未注册

200001 - 失败,标签不符合规范

200002 - 失败,此设备标签数量超过上限

200003 - 失败,增加或更新的标签为空

200004 - 失败,每次最多设置和更新100个标签

其他结果码见通用结果码。

16.更新标签

var bdpush = api.require(‘bdPush’);

var param = {tags:’tag1,tag2' };

bdpush.updateTags(param,function(ret,err) {

var result = ret.result;

});

该方法用更新标签,更新标签会清空原有所有标签,并更换为新设的标签列表,多个标签用逗号分隔。 返回结果码含义如下:

0 - 成功

10000 - 失败:设备未注册

200001 - 失败,标签不符合规范

200002 - 失败,此设备标签数量超过上限

200003 - 失败,增加或更新的标签为空

200004 - 失败,每次最多设置和更新100个标签

其他结果码见通用结果码。

17.清空标签

var bdpush = api.require(‘bdPush’);

bdpush.cleanTags(function(ret,err) {

var result= ret.result;

});

该方法用清空标签列表 结果码含义如下:

0 - 成功

10000 - 失败:设备未注册

其他结果码见通用结果码。

18.查询单个标签是否绑定

var bdpush = api.require(‘bdPush’);

var param = {tags:’xxx' };

bdpush.isTagBinding(param,function(ret,err) {

var binding= ret.result;

});

该方法用来查询单个标签是否已经绑定 tag表示要查询的标签 返回结果码含义如下:

0 - 成功 & 设备绑定所查询的标签

10000 - 失败:设备未注册

200001 - 失败,标签不符合规范

210001 - 查询单个标签,设备未绑定所查询的标签

其他结果码见通用结果码。

19.查询所有标签

var bdpush = api.require(‘bdPush’);

bdpush.getAllTagsN(function(ret,err) {

var tags= ret.result;

});

该方法用获取标签列表 返回的结果,可以通过Json进行解析,其中0字段为int类型结果码,1字段为设置的所有标签,类型为JsonArray 结果码含义如下:

0 - 成功

10000 - 失败:设备未注册

其他结果码见通用结果码。

20.判断当前应用是否拥有通知栏权限

var bdpush = api.require(‘bdPush’);

bdpush.areNotificationsEnabled(function(ret,err) {

var result= ret.result;

});

该方法用获取是否有通知栏 返回Boolean结果码含义如下: true - 成功。 其他结果码见通用结果码。

21.设置应用处于前台状态下,能否显示通知栏

var bdpush = api.require(‘bdPush’);

var param = {enable:false };

bdpush.setNotificationEnableInForeground(param,function(ret,err) {

var result= ret.result;

});

true标识可以显示,false 代表不显示

22.设置通知栏最大显示的条数

var bdpush = api.require(‘bdPush’);

var param = {max_count:3};

bdpush.setMaxNotificationCount(param,function(ret,err) {

var result= ret.result;

});

3代表最终设置的最大显示条数

23.设置消息监听

var bdpush = api.require(‘bdPush’);

bdpush.setPushEventListener(function(ret,err) {

var result = ret.result;

}); 消息会通过result返回回来