uni.webView.redirectTo不生效

背景:uniapp开发的小程序(简称UNI)页面A用Webview内嵌vue开发的h5,想从h5直接跳到UNI页面B。

前序:

https://blog.csdn.net/weixin_47072581/article/details/131422638

之前遇到UniAppJSBridgeReady事件不触发的问题,用上述链接解决了。但是!突然有一天,它又不行了TAT 怀疑还是sdk引入方式的问题,于是换了一种引入方式,改成从main.js引入。

step1: 把uni.webview.1.5.2.js下载到本地,放入utils文件夹

https://js.cdn.aliyun.dcloud.net.cn/dev/uni-app/uni.webview.1.5.2.js

step2:main.js引入

import * as uni from '@/utils/uni.webview.1.5.4';
document.addEventListener('UniAppJSBridgeReady', function() {
    Vue.prototype.uni = uni
    console.log("初始化uniapp的API成功");
})

step3:业务页面使用

console.log("this.uni: ", this.uni);
this.uni.webView.getEnv(function (res) {
     console.log("methods webView 当前环境: " + JSON.stringify(res));
});

打印一下,可以看到如下结果

如图,getEnv已经可以正常使用了。但是!uni.webView.redirectTo死活不行(无报错,success和fail的回调函数console也没打出来,也没中止,能够继续往下执行,就像无事发生一样....),使用uni.redirectTo也不行。

看了很多帖子,也引入了微信sdk,微信sdk和uniapp sdk的引用顺序也没问题。也怀疑是微信sdk和uniapp sdk版本不兼容,也试了网上能成功执行的版本,也还是不行。没办法,只能换个方法了,准备试试直接使用微信sdk。

 step1:npm安装

npm install weixin-js-sdk --save

step2:main.js引入

import jssdk from 'weixin-js-sdk'
Vue.prototype.$wx = jssdk // 挂载全局

step3:业务页面使用

this.$wx.miniProgram.navigateTo({
     url: "/pages/mainapp-face/mainapp-face?bizToken=" + this.bizToken + "&id=" + this.id
});

/pages/xxx/xxx为UNI页面B,注意页面B要在UNI pages.json中注册,注册时的path没有/,但是使用时跳转url要/

{
    "path": "pages/mainapp-face/mainapp-face",
	"style": {
		    "navigationBarTitleText": "人脸核身"
			}
}

能成功跳转啦!

p.s. 未解之谜:之前h5 index.html在线引入,能成功初始化uniapp sdk,并能成功使用uni.redirectTo,但是啥都没改突然不行了,求大神解惑TAT

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值