编写集成代码
所有文档
menu
没有找到结果,请重新输入

移动APP推送服务

编写集成代码

以下所有集成方法调用必须在同一进程中,否则会发生错误。请注意在多进程情况下确保只在主进程初始化本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”);
        }

    }
上一篇
多进程支持
下一篇
API接口说明