厂商通道集成场景解析

更新时间:
复制 MD 格式

普通推送结合辅助弹窗推送的场景,帮助您快速理解辅助弹窗功能的配置。

重要

本文说明普通推送与辅助弹窗的通用配置场景。客户端点击处理请按所用 SDK 参见辅助弹窗接入(3.x)或辅助弹窗接入(4.x)。

客户端配置

客户端有Main、Second两个Activity,MainActivity为App打开主页面,SecondActivity extends AndroidPopupActivity;

  • 重要

    Android SDK 4.x 中,MessageReceiver 和 AliyunMessageIntentService 的业务回调范围如下:

    • ACCS 自有通道和 FCM:支持消息接收(onMessage)、通知到达(onNotification)、通知点击(onNotificationOpened)、通知清除(onNotificationRemoved)等完整业务回调。

    • 除 FCM 外的其他 Android 厂商通道:仅支持 onNotificationOpened(通知点击),不触发消息接收、通知到达、通知清除等其他回调。

    普通通知到达回调示例:将以下方法放入已完成接入的 MessageReceiver 子类中,其余回调按所用 SDK 的接入文档实现。

    @Override
    public void onNotification(Context context, String title, String summary, Map<String, String> extraMap) {
      Log.d(TAG, "Receive notification, title: " + title + ", content: " + summary + ", extraMap: " + extraMap);
    }
  • MainActivity定义:

    package com.alibaba.push.testdemo;
    public class MainActivity extends Activity {
      @Override
      protected void onCreate(Bundle savedInstanceState) {
        Log.d(TAG, "Main");
      }
    }
  • SecondActivity接入:

    SecondActivity 继承 AndroidPopupActivity,作为厂商通知点击的中转入口。具体实现和点击回调按所用 SDK 版本的辅助弹窗接入文档配置。

场景:普通推送+辅助弹窗

服务端配置

服务端配置如下:

PushRequest pushRequest = new PushRequest();
// 其余设置省略
// 通知
pushRequest.setPushType("NOTICE");
// 标题
pushRequest.setTitle("hello");
// 内容
pushRequest.setBody("PushRequest body");
// 点击通知后动作 "APPLICATION" : 打开应用 "ACTIVITY" : 打开AndroidActivity "URL" : 打开URL "NONE" : 无跳转
pushRequest.setAndroidOpenType("APPLICATION");
// 设定通知打开的activity,仅当AndroidOpenType="Activity"有效
pushRequest.setAndroidActivity("com.alibaba.push.testdemo.MainActivity");
// 设置辅助弹窗打开Activity
pushRequest.setAndroidPopupActivity("com.alibaba.push.testdemo.SecondActivity");
// 设置辅助弹窗通知标题
pushRequest.setAndroidPopupTitle("hello2");
// 设置辅助弹窗通知内容
pushRequest.setAndroidPopupBody("PushRequest body2");
// 设定android类型设备通知的扩展属性
pushRequest.setAndroidExtParameters("{\"k1\":\"android\",\"k2\":\"v2\"}");

推送结果

非厂商通道设备和在线设备:

  • 收到普通推送通道弹出的通知,点击后打开App,进入首页MainActivity,如果设备在前台,保持当前界面不变;

  • onNotification()回调输出Receive notification, title: hello, content: PushRequest body, extraMap: {k1=android, k2=v2};

清理进程后的小米、华为等厂商通道设备:

  • 厂商通道弹出通知,点击通知后跳转到SecondActivity;

  • 辅助弹窗完成点击数据解析后,业务回调可取得 title: hello、content: PushRequest body、extraMap: {k1=android, k2=v2}。具体回调按所用 SDK 版本的辅助弹窗接入文档配置。

场景总结

服务端参数

  • Title、Body、AndroidExtparameters全场景生效。

  • AndroidOpenType、AndroidActivity作用于在线设备和非小米、华为等厂商通道设备。

  • AndroidPopupTitle、AndroidPopupBody、AndroidPopupActivity仅作用于厂商通道。

客户端数据接收

  • 在线设备和非小米、华为等厂商通道设备,数据通过自定义接收器MessageReceiver接收数据。

  • 厂商通知点击通过辅助弹窗 AndroidPopupActivity 中转,点击业务处理按所用 SDK 版本的辅助弹窗接入文档配置。

说明

厂商通道送达的通知,其标题和内容由服务端的 AndroidPopupTitle、AndroidPopupBody 设置。点击通知唤起辅助弹窗 AndroidPopupActivity,解析后的点击数据包含服务端设置的 Title、Body、AndroidExtParameters;具体业务回调按所用 SDK 版本的辅助弹窗接入文档配置。