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));
});

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

uni.webView.redirectTo不生效_第1张图片

如图,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

你可能感兴趣的:(html5,vue.js,前端)