编写集成代码
以下所有集成方法调用必须在同一进程中,否则会发生错误。请注意在多进程情况下确保只在主进程初始化本SDK.
通用结果码
部分接口的结果码包括以下通用部分,在使用这些通用结果码的接口中,标注了“其他结果码见通用结果码。”:
- 5:未绑定的设备。
- 4:内部Json格式错误。
- 3:网络异常导致的失败。
- 2:内部逻辑错误。
- 1:其他错误。
通用错误码
部分接口传入的Callback的onError方法会回调错误码,在这些接口标注了“错误码含义见通用错误码。”:
1:接口方法名为空
2:未找到对应的接口方法
3:内部错误
4:移动APP推送SDK初始化失败
初始化
程序启动后需要在在应用的Application类的onCreate中调用移动APP推送SDK初始化代码:
TH.init(Context context, String appkey, String seckey, 100028,100019);
参数说明
String appkey和String seckey,是推送平台分配给应用的使用推送服务的凭证,用于服务器的访问校验,可以在推送平台的应用详情中获取这两个key。这两个 key 是和集成应用的包名和签名唯一关联生成的,测试时请确保应用的签名信息和申请这两个 key 时的签名一致。
延迟初始化
SDK支持在程序启动后在应用的Application类的onCreate中调用延迟初始化代码,根据传入的参数使初始化行为延迟一段时间开始,注意该接口与上面的初始化接口只能调用一个。
TH.initDelay(Context context,int delaySeconds,String appkey, String seckey, 100028, 100019)
参数说明
- int delaySeconds 用于延迟初始化的时间,单位是秒,初始化行为将于delaySeconds秒后开始执行。
- String appkey和String seckey和上面一致
检查推送服务在线状态
该方法用于检查当前推送服务是否处于在线状态。请于初始化方法后调用。
TH.tinvoke(100019, "isPushEnabled",new Callback() {
@Override
public Object onEnd(Object...arg0) {
return null;
}
@Override
public Object onError(Object...arg0) {
return null;
}
});
参数说明
- "isPushEnabled " 是SDK的接口名称。
- CallBack的onEnd方法会在执行结束后在其arg0[0]位置上返回boolean型的结果,true表示当前推送服务在线,
false表示当前推送服务不在线。 - CallBack对象的onError方法会在执行异常时收到Integer型的错误码,错误码为其参数arg0[0]。
错误码含义见通用错误码。
接收推送服务事件
用户需要自定义一个BroadcastReceiver接收指定的Intent,来进行推送相关的事件处理:
请在AndroidManifest文件中配置该Receiver如下,并填充Receiver名称和category标签(应用包名):
<receiver
android:name=" Receiver名称 "
android:exported="false" >
<intent-filter>
<action android:name="com.baidu.techain.push.action.PUSH_EVENT" />
<category android:name=" 填写应用包名 " />
</intent-filter>
</receiver>
该BroadcastReceiver接收到此action的Intent后:
调用intent.getExtras()获取Bundle,从Bundle中获取内容字段。其中”event_type”字段的int值表示本条事件的类型,该值含义和该含义下其他内容字段如下:
1:Push服务启动成功。每次连接成功时会接收到此事件。
其他字段:
字段名 | 类型 | 说明 |
---|---|---|
push_uid | string | 本设备推送识别Id,请自行保存,用于关联到该设备 |
2:推送服务在线状态改变。每次在线状态改变时会接受到此事件。
其他字段:
字段名 | 类型 | 说明 |
---|---|---|
conn_status | boolean | 当前连接状态,true为在线,false为不在线 |
3:接收到透传消息。
其他字段:
字段名 | 类型 | 说明 |
---|---|---|
id | string | 消息id |
description | string | 描述 |
content | string | 消息内容 |
4:接收到一个通知栏消息。
其他字段:
字段名 | 类型 | 说明 |
---|---|---|
id | string | 消息id |
title | string | 通知标题 |
content | string | 通知内容 |
extra | json string | 自定义参数键值对 |
5:通知栏被点击。
其他字段:
字段名 | 类型 | 说明 |
---|---|---|
id | string | 被点击通知栏对应的消息id |
item | int | 被点击的物件 |
0:通知栏
字段名 | 类型 | 说明 |
---|---|---|
title | string | 通知标题 |
content | string | 通知内容 |
extra | Json string | 自定义参数键值对 |
集成成功检查
1、 调用初始化接口,数秒后在用户自定义Receiver中接收到event_type为1的广播事件,说明集成成功。
若无法接收到该事件,请检查网络是否连通。并可以调用检查Push在线状态接口(API接口说明中),根据其onError的返回值排查原因。
2、 以上没问题后,登录推送平台,进入待测试应用的推送通知界面,一次填写通知标题、内容、点击发送按钮即可向该推送应用名下所有设备推送通知消息,具体操作方法请参考:推送平台使用指南
3、 如果手机收到消息,则说明SDK接入测试已经成功。
通知点击--自定义参数获取方式
以下提供通知点击获取自定义参数方式,详情如下:
用户可在目标Activity#onCreate
方法中获取Intent,通过Intent来获取平台设置的相关自定义参数
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = getIntent();
if (intent != null){
String value = intent.getStringExtra(“自定义参数的key”);
}
}