点击通知跳转的具体逻辑,需要你自己写代码实现,极光需要涉及到的操作流程如下:

1、客户端配置

Android

  • 在 AndroidManifest 里面配置自定义广播接收器

  • 在自己写的 BroadcastReceiver 类里处理 openNotification 后的逻辑,设定根据取到的 extras 字段中的 key 和 value 信息跳转到某个 Activity ,文档示例点我阅读

  • 特别注意: Android 3.3.0 开始对消息接收处理新增了回调,务必阅读文档
    -说明:强烈建议使用新回调,在使用新回调时,如果在AndroidManifest 配置单进程或者让新的消息回调与pushservice进程一致,则遇到具有「后台弹出界面」权限的手机(如小米)时,后台点击通知也能正常跳转。
    配置进程的方法是使用 android:process 参数,参考如下代码

    <receiver
       android:name="自定义 Receiver"
       android:enabled="true" 
       android:exported="false" 
       android:process=":pushcore"> //配置进程
       <intent-filter>
            <action android:name="cn.jpush.android.intent.RECEIVE_MESSAGE" />
            <category android:name="您应用的包名" />
       </intent-filter>
    </receiver>
    <service android:name="xx.xx.XService"
         android:enabled="true"
         android:exported="false"
         android:process=":pushcore"> //配置进程
         <intent-filter>
             <action android:name="cn.jiguang.user.service.action" />
         </intent-filter>
    </service>
    <service
            android:name="cn.jpush.android.service.PushService"
            android:enabled="true"
            android:exported="false"
            android:process=":pushcore" > //配置进程
            <intent-filter>
                <action android:name="cn.jpush.android.intent.REGISTER" />
                <action android:name="cn.jpush.android.intent.REPORT" />
                <action android:name="cn.jpush.android.intent.PushService" />
                <action android:name="cn.jpush.android.intent.PUSH_TIME" />
            </intent-filter>
        </service>

iOS

  • iOS 一般在点击了通知栏的消息后才会走获取消息内容的方法

  • 同样的设定在取到 extras 的对应值时跳转到某页面

2、推送

  • 推送时通过 extras 传递跳转信息,需客户端将设定的 extras 规则告知负责推送的人,某消息的 extra 是什么

  • extras 字段在 Notification 和 Message 中均有提供,官网推送时在可选设置 - 附加字段处传值,点击极光默认的通知栏进行跳转的 extra 需要在 Notification 里面传,详细说明

  • 完整的推送示例说明,注意 Notification 的 extra 在 iOS 或 Android 的平台属性下才支持

3、新功能

4、注意事项

  • 点击消息后应用被重新启动,参考:
    https://community.jiguang.cn/question/260220

  • Android 7.0 开始,系统会自动将多条通知消息合并

    • 如果点击合并的通知,只能跳转到首页,这是系统的规则,系统并未提供跳转具体页面的 API
    • 需要展开合并的消息,再依次点击才可以实现跳转具体页面
    • 规避方案:让通知栏的消息少于「系统会合并的条数」,让他不合并,设置文档
    • 我们将对此进行优化,提供设置强制不合并等选择,敬请期待

附:Android 进程退出,收到了推送,点击通知消息,无法打开


1、如果是在 debug 状态下正常,打包后异常,可能需要检查下防混淆的设置,接收消息的 BroadcastReceiver 和跳转的页面均加上防止混淆的代码,参考用户

2、vivo 部分手机有后台弹出界面的权限,将该权限打开。有的是需要在 oppo vivo 的手机管家打开应用的自启动或者悬浮窗

3、一般来说,出现这个问题源自 Android 系统对 App 不同状态下,启动的限制

可能的原因:

  • Android 应用退出后,可能长连接还存在,所以能收到消息,但是由于手机系统对 App 的限制,导致点击通知栏不能重启 App 成功。

  • 一般出现在 点击要自定义跳转时,若只是极光默认的点击 打开 App 首页应该没有问题

解决办法:


如果对你有帮助,点个赞 呗ლ(╹◡╹ლ)

点这里返回常见问题目录,不吹不黑,收藏本帖可以解决你 90% 的问题 (ノ◕ω◕)ノଘ_ଘ