客户端API介绍

更新时间:2015/12/21 访问次数:15351

API介绍

CloudPushService接口描述


public interface CloudPushService { /** * 初始化用户的SDK,将应用关联到云通道(如果推送服务没有启动,会自动启动推送服务并作为Master身份) * @param context 应用的上下文(ApplicationContext) * @param callback 操作的回调。可以为空,跳过回调。 */ void register(final Context context, final CommonCallback callback); /** * app启动时,进行启动信息统计 */ void onAppStart(); /** * 客户端给当前应用打自定义标签(可以根据自定义标签做推送) * * @param tag 标签名称 * @param callback 回调 */ void addTag(final String tag, final CommonCallback callback); /** * 删除当前应用的自定义标签(后续将不能根据自定义标签做推送) * * @param tag 标签名称 * @param callback 回调 */ void removeTag(final String tag, final CommonCallback callback); /** * 将应用内部的账号与推送通道进行关联(可以实现按账号的定点消息推送) * * @param account */ void bindAccount(String account); /** * 将应用内部的账号与推送通道进行关联(可以实现按账号的定点消息推送) * * @param account * @param callback 可以为空,操作的回调 */ void bindAccount(final String account, final CommonCallback callback); /** * 将应用内部的账号与推送通道取消关联(后续将无法收到服务端按账号推送的消息) */ void unbindAccount(); /** * 将应用内部的账号与推送通道取消关联(后续将无法收到服务端按账号推送的消息) * * @param callback 可以为空,操作的回调 */ void unbindAccount(final CommonCallback callback); /** * 向服务端应答消息的状态 * * @param messageID 消息ID * @param type 应答类型(打开:4,删除:8) */ void report(final String messageID, final int type); /** * @return deviceId 获取当前设备的唯一标识 */ String getDeviceId(); /** * @return UTDId 获取内部设备标识 */ String getUTDeviceId(); }

MessageReciever扩展介绍

通过继承MessageReciever,可以拦截通知,接收消息,获取推送中的扩展字段。或者在通知打开或删除的时候,切入进行后续处理。
使用方法:

  • 1.继承com.alibaba.sdk.android.push.MessageReceiver
  • 2.在manifest中找到原来MessageReceiver的配置,将class替换成你自己的receiver(注意:只能配置一个)。
  • 3.在继承的类中重写各个方法,如:onNotification 用于在接收通知后,用户需要自定义操作的场景,或者用于获取扩展字段。
<!--消息接收监听器-->
<receiver android:name="com.alibaba.sdk.android.push.MessageReceiver <-- 把这里替换成你自己的receiver">
    <intent-filter>
        <action android:name="com.alibaba.push2.action.NOTIFICATION_OPENED"/>
    </intent-filter>
    ... ...
</receiver>

推送场景

2.1 按设备号推送

  • 1.获取设备号,使用设备号进行推送:(在推送初始化之后,触发下端代码,可以打印出设备号)
CloudPushService cloudPushService = AlibabaSDK.getService(CloudPushService.class);
Log.d("DeviceId: ", cloudPushService.getDeviceId());
  • 2.从日志中找到相关DeviceID:
12-10 12:40:52.323 24974-24974/com.xxx D/TestBindFragment: deviceId = d4cb97628488482ab5b0c741ccab7e40
  • 3.在控制台推送的“高级设置”选择 “指定终端”,或者在API中按照device推送。

2.2 按账号推送

  • 1.调用api绑定账户,新建CommonCallback接收回调结果,如果回调成功,即完成绑定,可以在服务端按照账户号进行推送或者在API中按照account推送
CloudPushService cloudPushService = AlibabaSDK.getService(CloudPushService.class);
cloudPushService.bindAccount("$我的账号", new CommonCallback() {
    @Override
    public void onSuccess() {
        Log.d(TAG, "bind account success");
    }

    @Override
    public void onFailed(String errorCode, String errorMessage) {
        Log.d(TAG, "bind account fail" + "err:" + errorCode + " - message:"+ errorMessage);
    }
});
  • 2.如果需要换一个账号绑定,直接调用bindAccount(“新的账号”,new CommonCallback() {…})即可。

  • 3.解绑账号

    CloudPushService cloudPushService = AlibabaSDK.getService(CloudPushService.class);
    cloudPushService.unbindAccount(new CommonCallback() {
        ...
    });

2.3 启用标签推送 void addTag(String tag, CommonCallback callback)

和绑定用户一样,你可以使用 cloudPushService.addTag(String tag, CommonCallback callback); 给指定客户端添加你需要的推送标签。注意,标签最多为10个字符,收尾不要带空格符号。对于同一设备,请不要绑定10个以上Tag.

使用cloudPushService.removeTag可以移除添加的标签。
account和tag不能是中文,不然会出现错误

2.4 推送简单消息(覆盖void onMessage(..))

消息命令是利用长链接,通过服务器发送给客户端静默的消息命令,可用于聊天场景,或者更新 sdk 等等场景,与通知的差别是不会在 app 中作为通知提醒。

SDK接入:

继承并在manifest中替换com.alibaba.sdk.android.push.MessageReceiver

你可以从CPushMessage中读取到消息的 messageId,appId,title,content。

注意:在控制台推送时,请选择“推送消息”。如果使用openapi推送的,注意type字段的选择。

2.5 通知扩展字段获取(void onNotification(..))

在通知弹出以后,会继续调用onNotification。通过扩展onNotification你可以获得通知相关的信息(标题,内容,扩展字段等) 。

2.6 通知打开/删除 事件监控(onNotificationOpened(..))

onNotificationOpened(Context context, String title, String summary, String extraMap)
onNotificationRemoved(Context context, String messageId)

在用户点击消息,或者清除消息的时候,你希望你的应用在点击/清除后获得相关的数据(如获取标题,或扩展字段的内容)
你可以覆盖上面onNotificationOpened和onNotificationRemoved方法。

技术咨询

 

 群号:1074804791

FAQ

关于此文档暂时还没有FAQ
返回
顶部