开发者社区 问答 正文

应用研发平台EMAS中PushPopActivity怎么处理的点击时间?

"应用研发平台EMAS中PushPopActivity怎么处理的点击时间?
bf114ac40ce54ce7dd42c28ea6f97741.png"

展开
收起
小易01 2023-12-19 22:57:07 68 分享 版权
阿里云 AI 助理回答

在应用研发平台 EMAS 中,PushPopActivity 的点击事件处理主要依赖于辅助弹窗功能的实现。以下是详细的处理方式和配置说明:


1. 辅助弹窗功能的基本原理

辅助弹窗功能主要用于在设备的应用进程被清理后,通过厂商通道(如小米、华为等)推送通知时,提供一种特殊的跳转逻辑。当用户点击通知时,会触发 PushPopActivity 的回调方法,从而完成特定的业务逻辑处理。


2. 点击事件的处理流程

点击事件的处理主要通过继承 AndroidPopupActivity 并实现其回调方法来完成。具体步骤如下:

(1)自定义 PushPopActivity

需要创建一个自定义的 Activity,并继承 AndroidPopupActivity。在此类中,重写 onSysNoticeOpened 方法以处理通知点击事件。

示例代码如下:

import com.alibaba.sdk.android.push.AndroidPopupActivity;
import java.util.Map;

public class SecondActivity extends AndroidPopupActivity {
    static final String TAG = "SecondActivity";

    @Override
    protected void onSysNoticeOpened(String title, String content, Map<String, String> extraMap) {
        // 处理通知点击事件
        Log.d(TAG, "Receive notification, title: " + title + ", content: " + content + ", extraMap: " + extraMap);
        
        // 在此处添加自定义逻辑,例如页面跳转或其他操作
    }
}

(2)回调参数说明

  • title: 通知的标题。
  • content: 通知的内容。
  • extraMap: 通知的扩展参数,通常以键值对的形式传递,可用于携带额外的业务数据。

3. 服务端配置

为了确保辅助弹窗功能正常工作,服务端需要正确配置相关参数。以下是关键配置项:

(1)设置辅助弹窗的跳转 Activity

在服务端推送请求中,通过 setAndroidPopupActivity 方法指定辅助弹窗点击后跳转的 Activity

示例代码:

PushRequest pushRequest = new PushRequest();
pushRequest.setAndroidPopupActivity("com.alibaba.push.testdemo.SecondActivity");

(2)设置辅助弹窗的通知标题和内容

通过以下方法设置辅助弹窗的通知标题和内容: - setAndroidPopupTitle: 设置通知标题。 - setAndroidPopupBody: 设置通知内容。

示例代码:

pushRequest.setAndroidPopupTitle("Popup Title");
pushRequest.setAndroidPopupBody("Popup Body");

(3)开启离线保存

辅助弹窗功能的前提条件之一是开启离线保存(StoreOffline 参数设为 true)。此配置确保在设备离线时,推送消息能够被保存并在设备上线后展示。


4. 客户端配置

在客户端,除了实现 PushPopActivity 的逻辑外,还需要在 AndroidManifest.xml 文件中注册自定义的 Activity

(1)注册 PushPopActivity

AndroidManifest.xml 文件中添加以下配置:

<activity
    android:name="com.alibaba.push.testdemo.SecondActivity"
    android:exported="true">

    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />

        <data
            android:host="${applicationId}"
            android:path="/thirdpush"
            android:scheme="agoo" />
    </intent-filter>
</activity>

注意android:exported="true" 必须配置,否则可能导致无法接收通知点击事件。


5. 重要注意事项

  • 辅助弹窗仅在特定场景下生效:辅助弹窗功能仅在厂商通道设备的应用后台进程被清理时生效,对非接入厂商通道设备和在线设备不生效。
  • 功能性设置的限制:当辅助弹窗生效时,推送接口中的 TitleBodyAndroidActivity 等设置将不再起作用。
  • 测试建议:建议使用设备 ID 单推的方式进行测试,确保配置正确。

6. 总结

通过上述配置和服务端、客户端的配合,PushPopActivity 的点击事件可以被正确处理。开发者可以根据实际需求,在 onSysNoticeOpened 回调中实现自定义逻辑,例如页面跳转或数据处理。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答