uni-app QQ小程序发行后无法体验预览 报错 ReferenceError: _w is not defined

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

uni-app QQ小程序发行后无法体验预览 报错 ReferenceError: _w is not defined

操作步骤:

  • Hbuilder发行至QQ, QQ开发者工具=>上传代码体验,或预览,或真机调试,android QQ扫码体验,只有tabbar和navbar,中间无内容,报错如附件

预期结果:

  • 可正常预览,体验

实际结果:

  • 报错

bug描述:

uni-starter基础上开发的项目,微信,h5等平台上编译真机都没问题,QQ工具调试也没问题,但只要发行,预览或上传后都会报错:Page is not constructed because it is not found. QQ工具真机调试报错如下附件。 折腾两天了,各种方法都试了,无效,还请帮忙看下或提供下定位思路,感谢!

信息类别 信息内容
产品分类 uniapp/小程序/QQ
PC开发环境操作系统 Windows
PC开发环境操作系统版本号 win10
HBuilderX类型 正式
HBuilderX版本号 3.96
第三方开发者工具版本号 3.96
基础库版本号 正式版
项目创建方式 HBuilderX


4 回复

根因:只要点了ES6转ES5,不管是微信还是QQ小程序都出此问题


测试好像与pinia有关。 新建uni-starter项目vue3,加入pinia:main.js import * as pinia from ‘pinia’ export function createApp() { const app = createSSRApp(App) app.use(pinia.createPinia())
然后在页面list.vue中导入pinia: import {useSeasonStore} from ‘@/store/season.js’ const season = useSeasonStore() console.log(season.info), 真机调试结果如附件,报错,小程序只有tabbar和导航栏

我测试了一下,新建uni-start并引入pinia ,用QQ扫码预览是能够正常访问到数据。 更新一下HBX和小程序基础版本试试看,若还是不行,请将你的问题工程上传一下

在 uni-app 开发 QQ 小程序时,如果发行后无法体验预览,并报错 ReferenceError: _w is not defined,这通常是由于 QQ 小程序环境与 uni-app 的某些特性不兼容,或者代码中存在不支持的语法或 API 调用。以下是一些可能的解决方案和排查步骤:


1. 检查 QQ 小程序环境兼容性

  • QQ 小程序的环境与微信小程序类似,但某些 API 或特性可能不完全一致。
  • 确保你使用的 uni-app API 和组件在 QQ 小程序中支持。可以参考 QQ 小程序官方文档uni-app 官方文档

2. 排查代码中的 _w 引用

  • _w 是 uni-app 内部使用的变量,通常用于处理小程序端的逻辑。如果报错提示 _w is not defined,可能是以下原因:
    • 代码中直接或间接引用了 _w,但 QQ 小程序环境不支持。
    • uni-app 编译后的代码在 QQ 小程序环境中无法正确运行。
  • 检查你的代码,确保没有直接使用 _w 或类似的内部变量。

3. 检查 uni-app 版本

  • 确保你使用的是最新版本的 uni-app。旧版本可能存在兼容性问题。
  • 更新 uni-app 和相关依赖:
    npm install @dcloudio/uni-app@latest

4. 检查编译配置

  • manifest.json 中,确保 QQ 小程序的配置正确。例如:
    "mp-qq": {
      "appid": "你的QQ小程序AppID",
      "setting": {
        "urlCheck": false,
        "es6": true,
        "postcss": true,
        "minified": true
      }
    }
  • 确保 es6minified 选项已启用,以支持现代 JavaScript 语法和代码压缩。

5. 检查第三方库或插件

  • 如果你使用了第三方库或插件,可能是这些库在 QQ 小程序环境中不兼容。
  • 尝试移除或替换这些库,看看问题是否解决。

6. 调试和日志

  • 在 QQ 开发者工具中,打开调试模式,查看详细的错误日志。
  • 使用 console.log 打印关键变量和逻辑,定位问题所在。

7. 重新编译和发行

  • 清理项目并重新编译:
    npm run dev:mp-qq
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!