uni-app编译成小红书小程序后,再编译器及真机调试正常,但编译成预览或体验版后页面无法使用,报错及白屏

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

uni-app编译成小红书小程序后,再编译器及真机调试正常,但编译成预览或体验版后页面无法使用,报错及白屏

操作步骤

编译成小红书预览二维码 或者上传体验版

预期结果

可正常访问

实际结果

白屏 报错

bug描述

编译成小红书小程序后 再编译器及真机调试可以正常使用 然而编译成预览或体验版后 页面无法使用 报错及白屏

[service/package_route_asset_missing]: load page module has uri error: missing route resource, route: pages/home/index

URIError: load page module has uri error: missing route resource, route: pages/home/index
at b (https://xhs.mp.base/service.base.js:2:458472)
at E.registerPageModule (https://xhs.mp.base/service.base.js:2:462241)
at Tt.createPageInstance (https://xhs.mp.base/service.base.js:2:507027)
at Tt.onEnqueue (https://xhs.mp.base/service.base.js:2:507898)
at Rt.onEnqueue (https://xhs.mp.base/service.base.js:2:509807)
at Ct.pushInitSlaveToHistory (https://xhs.mp.base/service.base.js:2:511908)
at Ct.pushInitSlave (https://xhs.mp.base/service.base.js:2:511793)
at $t.initRender (https://xhs.mp.base/service.base.js:2:518371)
at Object.<anonymous> (https://xhs.mp.base/service.base.js:2:517860)
at https://xhs.mp.base/service.base.js:2:742779

图片

项目 信息
PC开发环境操作系统 Windows
PC开发环境操作系统版本号 window11
第三方开发者工具版本号 2.3.1
基础库版本号 3.116.2
项目创建方式 CLI
CLI版本号 2.0.2-4040520250103001

11 回复

看到了。你测试空白工程、hello uniapp 工程在预览时候是否正常?这个反馈比较少。


空白工程、hello uniapp都可以正常编译

已经排查找到问题了

回复 Thck: 简单项目正常?那提供一个复现工程吧,你也缩小下问题,删除在路由和相关页面逻辑,缩小下问题范围

回复 Thck: ok,大概啥问题?

回复 DCloud_UNI_OttoJi: window在小红书使用会导致页面阻塞 这个代码是判断H5一些兼容的操作 还有JOSN.stringify 在小红书上没有排序会导致签名问题

回复 Thck: uniapp 需要做提示或者修复兼容吗?

回复 DCloud_UNI_OttoJi: 建议提示下 多端兼容时 使用window兼容H5代码会导致预览渲染异常

回复 Thck: 能具体说那个 window 的实现和 web 不一样吗,我看微信 小红书都有 globalThis,哪个判断有问题?

回复 DCloud_UNI_OttoJi: 两个原因导致的 一个是直接使用window?.XX 会引起预览异常 另一个是通过getCurrentPages获取视图后 直接设置 view.onShareAppMessage = function () { return shareAppMessage } 都会引起预览白屏或者切换页面白屏

针对您提到的uni-app编译成小红书小程序后,在编译器及真机调试正常,但编译成预览或体验版后页面无法使用、报错及白屏的问题,这通常与代码在不同环境下的兼容性或配置差异有关。以下是一些可能的解决思路和代码案例,希望能帮助您定位并解决问题。

1. 检查代码兼容性

确保您的代码中没有使用小红书小程序不支持的API或语法。例如,某些新特性或第三方库可能在开发工具中可用,但在实际发布版本中不可用。

2. 检查配置文件

pages.json

确保pages.json中的页面路径配置正确,且所有页面都已正确引入。

{
  "pages": [
    {
      "path": "pages/index/index",
      "style": {
        "navigationBarTitleText": "首页"
      }
    },
    // 其他页面配置
  ]
}

manifest.json

检查manifest.json中的小程序配置,特别是appidsetting等部分,确保它们与小红书小程序平台的要求相匹配。

{
  "mp-xiaohongshu": { // 小红书小程序配置
    "appid": "your-app-id",
    "setting": {
      "urlCheck": false
    }
  }
}

3. 调试与日志

由于预览或体验版无法直接使用开发者工具的调试功能,您可以通过以下方式获取更多错误信息:

  • 控制台日志:在代码中加入日志输出,使用console.log记录关键变量的状态和错误信息。
  • 网络请求:检查网络请求的响应,确保后端服务正常且返回的数据格式正确。

4. 异步数据处理

确保所有异步数据请求都在页面加载完成后正确执行,避免因数据未加载完成而导致的白屏。

onLoad() {
  this.fetchData();
},
methods: {
  async fetchData() {
    try {
      const res = await uni.request({
        url: 'https://api.example.com/data',
        method: 'GET'
      });
      this.setData({ data: res.data });
    } catch (error) {
      console.error('数据请求失败', error);
    }
  }
}

5. 清理缓存

尝试清理小红书小程序的缓存,有时候缓存问题也可能导致页面无法正常加载。

如果上述方法仍未解决问题,建议详细查看小红书小程序开发者社区或官方文档,看是否有其他开发者遇到并解决了类似问题。同时,也可以考虑向小红书小程序的技术支持团队寻求帮助。

回到顶部