uni-app 接入unipush2.0 报Bug
uni-app 接入unipush2.0 报Bug
测试过的手机
手机型号 | 系统 |
---|---|
荣耀9x | 鸿蒙系统 |
操作步骤:
- 打开app使其后台运行,使用接口给APP推送消息,接口返回:successed online
点击手机通知栏上的消息。 - 后台杀死APP,使用接口给APP推送消息,接口返回:successed_offline
点击手机通知栏的消息。
预期结果:
- 和2都能正常打开app
实际结果:
- 不能拉起app ;2 可正常拉起app
bug描述:
使用uniPush2.0离线时通过通知栏可以正常打开app;在线时通过通知栏,拉不起app
更多关于uni-app 接入unipush2.0 报Bug的实战教程也可以访问 https://www.itying.com/category-93-b0.html
5 回复
在线uni.onPushMessage能监听到消息推送和点击么
更多关于uni-app 接入unipush2.0 报Bug的实战教程也可以访问 https://www.itying.com/category-93-b0.html
肯定不能,监听的前提你得进入app
回复 猎宠网: …谁告诉你的?推送是分透传消息和不是透传消息的
回复 套马杆的套子: 刚才我试了一下,点击能够监听到,也能打印参数,就是拉不起APP
在使用 uni-app 接入 UniPush 2.0 时,可能会遇到一些常见的问题或 Bug。以下是一些常见的问题及解决方法,帮助你排查和解决问题。
1. UniPush 2.0 未初始化
- 问题描述: 无法收到推送消息,或者控制台报错
UniPush is not initialized
。 - 解决方法:
- 确保在
App.vue
或main.js
中正确初始化 UniPush 2.0。 - 检查
manifest.json
文件中是否配置了 UniPush 2.0 的相关信息。 - 示例代码:
// App.vue export default { onLaunch() { uni.getPushClientId({ success: (res) => { console.log('获取到推送 ClientId:', res.cid); }, fail: (err) => { console.error('获取推送 ClientId 失败:', err); } }); } };
- 确保在
2. 推送权限问题
- 问题描述: 在 Android 设备上无法收到推送消息,可能是由于权限问题。
- 解决方法:
- 确保在
manifest.json
中配置了正确的权限,特别是android.permission.RECEIVE_BOOT_COMPLETED
和android.permission.WAKE_LOCK
。 - 示例配置:
{ "permissions": { "android": [ "android.permission.RECEIVE_BOOT_COMPLETED", "android.permission.WAKE_LOCK" ] } }
- 确保在
3. 推送消息未显示
- 问题描述: 推送消息已经发送,但在设备上没有显示。
- 解决方法:
- 检查设备是否开启了通知权限。
- 确保在
manifest.json
中配置了正确的通知渠道(Android 8.0 及以上需要)。 - 示例配置:
{ "push": { "android": { "notificationChannelId": "your_channel_id", "notificationChannelName": "Your Channel Name" } } }
4. 推送消息点击无响应
- 问题描述: 点击推送消息后,应用未打开或未跳转到指定页面。
- 解决方法:
- 确保在
App.vue
中监听了onNotificationOpened
事件,并正确处理点击事件。 - 示例代码:
// App.vue export default { onLaunch() { uni.onNotificationOpened((res) => { console.log('通知被点击:', res); // 根据 res.payload 跳转到指定页面 uni.navigateTo({ url: '/pages/yourPage' }); }); } };
- 确保在