z***@163.com
z***@163.com
  • 发布:2025-11-21 15:52
  • 更新:2025-11-21 16:58
  • 阅读:50

【报Bug】编译为微信小程序插件后,生成的代码使用了canIUse方法,但小程序插件不支持该方法并报错。请在编译小程序插件时移除此方法。

分类:uni-app

产品分类: uniapp/小程序/微信

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win10 22H2

第三方开发者工具版本号: 1.06

基础库版本号: 3.11

项目创建方式: CLI

CLI版本号: 3.0

操作步骤:

见附件

预期结果:

见附件

实际结果:

见附件

bug描述:

附件图片分别是编译前代码,编译为插件后代码,开发者工具运行报错,以及微信官方文档说明。
请官方修复此问题。

2025-11-21 15:52 负责人:DCloud_UNI_JBB 分享
已邀请:
DCloud_UNI_JBB

DCloud_UNI_JBB

app.vue 里面不调用前面两个API还有这个问题吗?

  • z***@163.com (作者)

    删除前两个方法后编译的结果和之前一样,看来好像并不是这两个方法造成的,也许原始框架就是这样设置的?

    2025-11-21 16:22

  • DCloud_UNI_JBB

    回复 z***@163.com: 你是hx项目还是cli项目?

    2025-11-21 16:22

  • z***@163.com (作者)

    回复 DCloud_UNI_JBB: cli项目

    2025-11-21 16:26

DCloud_UNI_JBB

DCloud_UNI_JBB

找到 node_modules/@dcloudio/uni-mp-weixin/dist/uni.api.esm.js 文件,搜索

if (!wx$2.canIUse('getAppBaseInfo')) {  
    wx$2.getAppBaseInfo = wx$2.getSystemInfoSync;  
}  
if (!wx$2.canIUse('getWindowInfo')) {  
    wx$2.getWindowInfo = wx$2.getSystemInfoSync;  
}  
if (!wx$2.canIUse('getDeviceInfo')) {  
    wx$2.getDeviceInfo = wx$2.getSystemInfoSync;  
}

替换为

if (!wx$2.getAppBaseInfo || !wx$2.getAppBaseInfo()) {  
    wx$2.getAppBaseInfo = wx$2.getSystemInfoSync;  
}  
if (!wx$2.getWindowInfo || !wx$2.getWindowInfo()) {  
    wx$2.getWindowInfo = wx$2.getSystemInfoSync;  
}  
if (!wx$2.getDeviceInfo || !wx$2.getDeviceInfo()) {  
    wx$2.getDeviceInfo = wx$2.getSystemInfoSync;  
}
  • z***@163.com (作者)

    这样做暂时解决了???,这个问题会在后续版本中修复吗?

    2025-11-21 16:36

  • z***@163.com (作者)

    论坛不支持emoji表情啊,点赞变成问号了

    2025-11-21 16:37

  • DCloud_UNI_JBB

    回复 z***@163.com: 你重新编译一下插件测试下还有没有问题,后续会修复

    2025-11-21 16:38

  • z***@163.com (作者)

    回复 DCloud_UNI_JBB: 暂时可以了,有问题我再来反馈,感谢!!

    2025-11-21 16:39

  • DCloud_UNI_JBB

    回复 z***@163.com: 可以打个patches,避免重新安装依赖改动丢失

    2025-11-21 16:41

  • DCloud_UNI_JBB

    回复 z***@163.com: 我刚刚又更新了一下代码,更正一下再试试

    2025-11-21 16:59

  • z***@163.com (作者)

    回复 DCloud_UNI_JBB: 按照你最后修改的测试了,没有问题

    2025-11-21 17:06

要回复问题请先登录注册