uni-app uniappx onPushMessage 收到推送崩溃
uni-app uniappx onPushMessage 收到推送崩溃
| 项目信息 | 详情 |
|---|---|
| 产品分类 | uniapp/App |
| PC开发环境操作系统 | Mac |
| PC开发环境操作系统版本号 | 最新 |
| HBuilderX类型 | 正式 |
| HBuilderX版本号 | 4.76 |
| 手机系统 | iOS |
| 手机系统版本号 | iOS 18 |
| 手机厂商 | 苹果 |
| 手机机型 | iphone 15 |
| 页面类型 | vue |
| vue版本 | vue3 |
| 打包方式 | 云端 |
| 项目创建方式 | HBuilderX |
示例代码:
uni.onPushMessage((res:any) => {
console.log('onPushMessage', res)
uni.showToast({
title:'收到了云推送或点击状态栏消息',
})
})
就这一句监听命令
### 操作步骤:
```javascript
uni.onPushMessage((res:any) => {
console.log('onPushMessage', res)
uni.showToast({
title:'收到了云推送或点击状态栏消息',
})
})
预期结果:
不蹦
### 实际结果:
蹦
bug描述:
uniappx onPushMessage 收到推送崩溃 具体情况为:app 打开状态收到 推送的消息,直接崩溃,app 关闭状态 收到推送没事, 点击消息拉起app,正常, iOS 的崩溃日志已通过附件上传
hbx 版本为 4.75
更多关于uni-app uniappx onPushMessage 收到推送崩溃的实战教程也可以访问 https://www.itying.com/category-93-b0.html
3 回复
已知问题,下版本会修复
更多关于uni-app uniappx onPushMessage 收到推送崩溃的实战教程也可以访问 https://www.itying.com/category-93-b0.html
谢谢
在 uni-app x 中使用 onPushMessage 监听推送消息时出现崩溃,这是一个已知的兼容性问题。根据你提供的信息,问题主要出现在:
- 运行环境:iOS 18 + iPhone 15 + uni-app x + Vue 3
- 触发条件:App 处于前台时收到推送消息
- 崩溃特征:直接崩溃,但后台推送和点击消息拉起正常
问题分析:
- uni-app x 的
onPushMessage事件处理机制在 App 前台运行时存在内存管理问题 - 可能是事件回调函数中的
showToast与推送消息到达时的应用状态冲突导致 - iOS 18 系统对推送消息的处理逻辑变更可能加剧了这个问题
临时解决方案:
- 移除
showToast调用,仅保留日志输出:
uni.onPushMessage((res:any) => {
console.log('onPushMessage', res)
// 暂时注释掉 showToast
// uni.showToast({title:'收到了云推送或点击状态栏消息'})
})
- 使用条件判断控制 toast 显示:
uni.onPushMessage((res:any) => {
console.log('onPushMessage', res)
// 延迟执行避免冲突
setTimeout(() => {
uni.showToast({title:'收到了云推送或点击状态栏消息'})
}, 100)
})

