少年阿德
少年阿德
  • 发布:2023-03-12 19:45
  • 更新:2023-04-12 15:20
  • 阅读:1167

微信小程序插件开发后,插件内跳转报错

分类:uni-app

按照这个文档进行开发,https://uniapp.dcloud.net.cn/tutorial/mp-weixin-plugin-dev.html
插件编译预览都正常,但是在插件里做页面跳转,调用 navigateTo 和 navigateBack 方法都提示没有权限
navigateBack:fail rejected due to no permission currently

2023-03-12 19:45 负责人:DCloud_UNI_WZF 分享
已邀请:
DCloud_UNI_LXH

DCloud_UNI_LXH

看着像是微信那边的报错,可以看一下微信的 文档

需要页面权限:当前是插件页面时,宿主小程序不能调用该接口,反之亦然

  • 少年阿德 (作者)

    我的代码是在插件里调的,插件里调返回和跳转都提示无权限,是不是框架层会有问题?

    2023-03-13 11:56

  • DCloud_UNI_LXH

    回复 少年阿德: 这个报错是微信那边报出来的,可以看看社区有没有相应的信息

    2023-03-13 12:11

  • 少年阿德 (作者)

    回复 DCloud_UNI_LXH: 我去年按照 https://ask.dcloud.net.cn/article/39290 这个文档做的项目运行的时候是不会报这个错误的,但是那个工程现在跑不起来了。所以考虑是框架层升级的问题

    2023-03-13 12:58

  • 少年阿德 (作者)

    回复 DCloud_UNI_LXH: 我现在是手动把编译好的代码里的navigateTo navigateBack等 改成 wx.navigateTo 暂时 能解决问题,麻烦看下是不是框架层可以处理

    2023-03-13 13:27

  • 少年阿德 (作者)

    回复 DCloud_UNI_LXH: 之前的项目现在运行的时候提示这个错误 Cannot find module '@dcloudio/uni-mp-weixin/lib/createIndependentPlugin' 这个麻烦看下哦

    2023-03-14 17:13

  • DCloud_UNI_LXH

    回复 少年阿德: 关于这个依赖,可以重新安装一下编译器试试看,或者单独安装 @dcloudio/uni-mp-weixin

    2023-03-14 17:29

  • DCloud_UNI_LXH

    回复 少年阿德: uni.navigateTo 实际最后调用的还是 wx.navigateTo ,可以把你出问题的项目发一下我看看

    2023-03-14 17:31

  • 少年阿德 (作者)

    回复 DCloud_UNI_LXH: 我更新下试试,今天试了发现插件里的uni.request也有这个问题,最终读取的是小程序的域名白名单,而不是插件配置的域名白名单,我也是在编译好的代码里有改回了wx.request

    2023-04-11 20:41

  • 少年阿德 (作者)

    回复 DCloud_UNI_LXH: 更新到新版后,编译插件报错,提示 Syntax Error: HookWebpackError: Module build failed (from ./node_modules/.store/@dcloudio+vue-cli-plugin-uni@2.0.2-3070920230324001/node_modules/@dcloudio/vue-cli-plugin-uni/packages/sass-loader/dist/cjs.js):

    Error: Unknown keyword formatMinimum

    2023-04-12 10:30

  • 少年阿德 (作者)

    回复 DCloud_UNI_LXH: 我整理了一个简单的项目发到下面了

    2023-04-12 11:10

  • 1***@qq.com

    回复 少年阿德:兄弟现在你插件那个问题咋个解决的喃,我用了他们最新的cli,但是还是没法跳转

    2024-11-14 15:28

DCloud_UNI_WZF

DCloud_UNI_WZF

vue2 还是 3?

  • 少年阿德 (作者)

    vue2

    2023-04-12 10:46

  • 少年阿德 (作者)

    现在的现象是编译出来的插件里的 uni. navigateTo uni.request 的权限都是主小程序的,而不是插件内的,我的处理方式是在编译生成的代码里把对应的硬改成 wx. 的方法,具体怎么产生的还是辛苦框架层的大佬们看一下

    2023-04-12 10:48

少年阿德

少年阿德 (作者)

代码包可以看下,编译出来的代码也可以看下

DCloud_UNI_WZF

DCloud_UNI_WZF

临时解决方案:替换
HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/uni-mp-weixin/dist/wx.js
HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/lib/mp/index.js
为附件文件(cli项目从node_modules目录开始查找),试下能否解决你的问题,结果麻烦反馈下,谢谢

  • 少年阿德 (作者)

    可以了 谢谢

    2023-04-12 20:03

  • 1***@qq.com

    替换之后直接报错了,我是直接打包成插件

    2023-08-15 10:01

  • ccg3

    回复 1***@qq.com: 重新编译下就好了

    2023-09-06 10:14

  • s***@163.com

    回复 少年阿德: hello,是怎么解决的呀?

    2024-12-12 09:57

要回复问题请先登录注册