全部产品

辅助通道集成场景解析

更新时间:2020-10-16 15:28:46

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

客户端配置

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

  • 普通通知回调配置:

    1. public class MyMessageReceiver extends MessageReceiver {
    2. /**
    3. * 推送通知的回调方法
    4. * @param context
    5. * @param title
    6. * @param summary
    7. * @param extraMap
    8. */
    9. @Override
    10. public void onNotification(Context context, String title, String summary, Map<String, String> extraMap) {
    11. Log.d(TAG, "Receive notification, title: " + title + ", content: " + summary + ", extraMap: " + extraMap);
    12. }
    13. }
  • MainActivity定义:

    1. package com.alibaba.push.testdemo;
    2. public class MainActivity extends Activity {
    3. @Override
    4. protected void onCreate(Bundle savedInstanceState) {
    5. Log.d(TAG, "Main");
    6. }
    7. }
  • SecondActivity定义:

    1. package com.alibaba.push.testdemo;
    2. import com.alibaba.sdk.android.push.AndroidPopupActivity;
    3. public class SecondActivity extends AndroidPopupActivity {
    4. /**
    5. * 辅助弹窗指定打开Activity回调
    6. * @param title 标题
    7. * @param content 内容
    8. * @param extraMap 额外参数
    9. */
    10. @Override
    11. protected void onSysNoticeOpened(String title, String content, Map<String, String> extraMap) {
    12. Log.d(TAG, "Receive XiaoMi notification, title: " + title + ", content: " + content + ", extraMap: " + extraMap);
    13. }
    14. }

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

服务端配置

服务端配置如下:

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

推送结果

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

  • 收到普通推送通道弹出的通知,点击后打开App,进入首页MainActivity,如果设备在前台,保持当前界面不变;
  • onNotification()回调输出Receive notification, title: hello, content: PushRequest body, extraMap: {k1=android, k2=v2};

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

  • 辅助弹窗通道弹出通知,点击通知后跳转到SecondActivity;
  • onSysNoticeOpened()回调输出Receive XiaoMi notification, title: hello, content: PushRequest body, extraMap: {k1=android, k2=v2};

场景总结

服务端参数

  • TitleBodyAndroidExtParameters全场景生效。
  • AndroidOpenTypeAndroidActivity作用于在线设备和非小米、华为等厂商通道设备。
  • AndroidPopupTitleAndroidPopupBodyAndroidPopupActivity仅作用于辅助通道。

客户端数据接收

  • 在线设备和非小米、华为等厂商通道设备,数据通过自定义接收器MessageReceiver接收数据。
  • 辅助通道,通过辅助弹窗AndroidPopupActivity接收数据。
  • 特殊说明:辅助通道送达的通知,通知中标题和内容是服务端设置的AndroidPopupTitleAndroidPopupBody,点击通知唤起辅助弹窗AndroidPopupActivity,在onSysNoticeOpened中回调的是服务端设置的TitleBodyAndroidExtParameters