uni-app OPPO手机点击收到的离线推送会有一条黑边闪过

发布于 1周前 作者 zlyuanteng 来自 Uni-App

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 点击推送,进入应用会有一条黑边闪过, 其他手机没问题。

视频已上传

video.zip


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. 优化页面渲染

如果黑边与页面渲染有关,尝试优化页面的渲染逻辑,确保在onLoadonShow生命周期中尽量减少同步阻塞操作,使用异步请求数据。

// 在目标页面,如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社区是否有类似问题的解决方案或更新。

回到顶部