8***@qq.com
8***@qq.com
  • 发布:2024-10-25 09:19
  • 更新:2024-10-25 09:19
  • 阅读:235

微信小程序web-view中 通过uni.navigateTo 跳转小程序页面偶尔失效,重新进入小程序后能跳转

分类:uni-app

1.html 页面
<body>
<div id="app"></div>
</body>
<script type="text/javascript">
var userAgent = navigator.userAgent;
if (userAgent.indexOf('AlipayClient') > -1) {
// 支付宝小程序的 JS-SDK 防止 404 需要动态加载,如果不需要兼容支付宝小程序,则无需引用此 JS 文件。
document.writeln('<script src="https://appx/web-view.min.js"' + '>' + '<' + '/' + 'script>');
} else if (/QQ/i.test(userAgent) && /miniProgram/i.test(userAgent)) {
// QQ 小程序
document.write(
'<script type="text/javascript" src="https://qqq.gtimg.cn/miniprogram/webview_jssdk/qqjssdk-1.0.0.js"><\/script>'
);
} else if (/miniProgram/i.test(userAgent) && /micromessenger/i.test(userAgent)) {
// 微信小程序 JS-SDK 如果不需要兼容微信小程序,则无需引用此 JS 文件。
document.write('<script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.4.0.js"><\/script>');
} else if (/toutiaomicroapp/i.test(userAgent)) {
// 头条小程序 JS-SDK 如果不需要兼容头条小程序,则无需引用此 JS 文件。
document.write(
'<script type="text/javascript" src="https://s3.pstatp.com/toutiao/tmajssdk/jssdk-1.0.1.js"><\/script>');
} else if (/swan/i.test(userAgent)) {
// 百度小程序 JS-SDK 如果不需要兼容百度小程序,则无需引用此 JS 文件。
document.write(
'<script type="text/javascript" src="https://b.bdstatic.com/searchbox/icms/searchbox/js/swan-2.0.18.js"><\/script>'
);
} else if (/quickapp/i.test(userAgent)) {
// quickapp
document.write('<script type="text/javascript" src="https://quickapp/jssdk.webview.min.js"><\/script>');
}
</script>
<!-- uni 的 SDK -->
<script type="text/javascript" src="https://js.cdn.aliyun.dcloud.net.cn/dev/uni-app/uni.webview.1.5.2.js"></script>


2.跳转方法

navigateTo(url, time = 0) {
this.url = isString(url) ? url : (${url.url}?${dealUrlParams(url.query)})
this.time = time
this.navigation('navigateTo')
},
navigateBack(url) {
// eslint-disable-next-line no-undef
uni.navigateBack({
delta: 1
})
},
redirectTo(url, time = 0) {
this.url = isString(url) ? url : (${url.url}?${dealUrlParams(url.query)})
this.time = time
this.navigation('redirectTo')
},
navigation(type) {
if (this.repeatTimer) {
return
}
// 防止重复点击
this.repeatTimer = setTimeout(() => {
this.repeatTimer = null
}, 500)
if (comparePlatform() === 'h5') {
setTimeout(() => {
window.parent.postMessage(JSON.stringify({ type: type, data: this.url }), '*')
}, this.time)
return
} else {
console.log(this.url)
setTimeout(() => {
// eslint-disable-next-line no-undef
uni[type]({
url: this.url
})
}, this.time)
}
},

2024-10-25 09:19 负责人:无 分享
已邀请:

要回复问题请先登录注册