点击通知跳转的具体逻辑,需要你自己写代码实现,极光需要涉及到的操作流程如下:
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、新功能
Android SDK v3.1.7 开始直接支持点击跳转到指定页面
需要在 REST API 发消息的时候设置 Notification-Android-intent 字段
4、注意事项
点击消息后应用被重新启动,参考:
https://community.jiguang.cn/question/260220Android 7.0 开始,系统会自动将多条通知消息合并
- 如果点击合并的通知,只能跳转到首页,这是系统的规则,系统并未提供跳转具体页面的 API
- 需要展开合并的消息,再依次点击才可以实现跳转具体页面
- 规避方案:让通知栏的消息少于「系统会合并的条数」,让他不合并,设置文档
- 我们将对此进行优化,提供设置强制不合并等选择,敬请期待
附:Android 进程退出,收到了推送,点击通知消息,无法打开
1、如果是在 debug 状态下正常,打包后异常,可能需要检查下防混淆的设置,接收消息的 BroadcastReceiver 和跳转的页面均加上防止混淆的代码,参考用户
2、vivo 部分手机有后台弹出界面的权限,将该权限打开。有的是需要在 oppo vivo 的手机管家打开应用的自启动或者悬浮窗
3、一般来说,出现这个问题源自 Android 系统对 App 不同状态下,启动的限制
可能的原因:
Android 应用退出后,可能长连接还存在,所以能收到消息,但是由于手机系统对 App 的限制,导致点击通知栏不能重启 App 成功。
一般出现在 点击要自定义跳转时,若只是极光默认的点击 打开 App 首页应该没有问题
解决办法:
打开手机系统的限制:已被开发者验证该方法有效,反推则源头正确。
努比亚手机的注意事项
建议配置 PopWinActivity如下:<activity android:name="cn.jpush.android.ui.PopWinActivity" android:theme="@style/MyDialogStyle" android:exported="false" > </activity>
自定义跳转,设置在 App 未启动时先启动 App
如果对你有帮助,点个赞 呗ლ(╹◡╹ლ)
点这里返回常见问题目录,不吹不黑,收藏本帖可以解决你 90% 的问题 (ノ◕ω◕)ノଘ_ଘ
0条评论