uni-app QQ小程序发行后无法体验预览 报错 ReferenceError: _w is not defined
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 |
根因:只要点了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 } }
- 确保
es6
和minified
选项已启用,以支持现代 JavaScript 语法和代码压缩。
5. 检查第三方库或插件
- 如果你使用了第三方库或插件,可能是这些库在 QQ 小程序环境中不兼容。
- 尝试移除或替换这些库,看看问题是否解决。
6. 调试和日志
- 在 QQ 开发者工具中,打开调试模式,查看详细的错误日志。
- 使用
console.log
打印关键变量和逻辑,定位问题所在。
7. 重新编译和发行
- 清理项目并重新编译:
npm run dev:mp-qq