uni-app OPPO手机点击收到的离线推送会有一条黑边闪过
uni-app OPPO手机点击收到的离线推送会有一条黑边闪过
类别 | 信息 |
---|---|
产品分类 | uniapp/App |
PC开发环境 | Mac |
PC版本号 | 14.5 |
HBuilderX类型 | 正式 |
HBuilderX版本 | 4.24 |
手机系统 | Android |
手机版本号 | Android 14 |
手机厂商 | OPPO |
手机机型 | 1+ ace2 |
页面类型 | vue |
vue版本 | vue3 |
打包方式 | 云端 |
项目创建方式 | HBuilderX |
操作步骤:
- oppo手机杀死后台, 收到离线推送
- 点击离线推送, 打开应用的过程中会复现黑边。
预期结果:
- oppo点击离线推送, 打开应用的过程中会不出现黑边。
实际结果:
- oppo 手机 点击离线推送, 打开应用的过程中会复现黑边。
bug描述:
云端打包出来的 APP 点击推送,进入应用会有一条黑边闪过, 其他手机没问题。
视频已上传
3 回复
视频截图
已解决
在处理uni-app在OPPO手机上点击离线推送消息后出现的黑边闪过问题时,这通常可能与页面跳转或应用启动时的渲染问题相关。以下是一些可能的代码示例和检查点,帮助你定位并解决问题。
1. 检查离线推送消息处理逻辑
首先,确保在manifest.json
中正确配置了离线推送,并且在App.vue
或相应的页面生命周期中正确处理了推送消息。
// manifest.json 中配置离线推送
{
"mp-weixin": {},
"app-plus": {
"distribute": {
"push": {
"ios": {
"...": "配置详情"
},
"android": {
"msg_type": ["display", "notification"],
"...": "其他配置"
}
}
}
}
}
在App.vue
中监听推送消息:
export default {
onLaunch: function (options) {
if (options && options.scene === 1034) { // 1034是点击离线推送消息的场景值
// 处理点击推送消息的逻辑,比如跳转到指定页面
uni.navigateTo({
url: '/pages/detail/detail?id=' + options.id
});
}
}
}
2. 优化页面渲染
如果黑边与页面渲染有关,尝试优化页面的渲染逻辑,确保在onLoad
或onShow
生命周期中尽量减少同步阻塞操作,使用异步请求数据。
// 在目标页面,如detail.vue中
export default {
onLoad: function (options) {
// 使用setTimeout模拟异步数据加载,避免阻塞渲染
setTimeout(() => {
this.fetchData(options.id);
}, 0);
},
methods: {
fetchData(id) {
// 发起网络请求获取数据
uni.request({
url: 'https://example.com/api/data/' + id,
success: (res) => {
this.setData({ data: res.data });
}
});
}
}
}
3. 检查CSS样式
确保页面的CSS样式没有导致渲染问题,特别是全屏页面的设置。
/* 在页面的style中确保全屏设置正确 */
page {
height: 100vh;
overflow: hidden;
}
4. 使用条件编译
针对OPPO手机进行条件编译,尝试特定的优化或调试。
// 在App.vue或相关页面中使用条件编译
#ifdef APP-PLUS && ANDROID
if (/oppo/i.test(uni.getSystemInfoSync().brand)) {
// 针对OPPO手机的特定处理逻辑
}
#endif
通过上述步骤,你可以逐步排查和解决uni-app在OPPO手机上点击离线推送消息后出现黑边闪过的问题。如果问题依旧存在,建议查看OPPO开发者社区或uni-app社区是否有类似问题的解决方案或更新。