不同场景下的小程序跳转
1、小程序原生页面之间的互相跳转
wx.switchTab、wx.reLaunch、wx.redirectTo、wx.navigateTo、wx.navigateBack
具体跳转方式可查看官方文档--https://developers.weixin.qq.com/miniprogram/dev/api/route/wx.switchTab.html
2、同一小程序内嵌H5页面和小程序原生页面之间跳转
内嵌H5跳转小程序原生页面
wx.miniProgram.navigateTo({
url: '/page/index/index?id=' + id + '&name=' + name
})
小程序原生页面跳转内嵌H5
跳转方式同第一种情况,先使用小程序原生页面的跳转方式跳转到webview页面,
跳转时携带需要内嵌的H5页面地址,将其绑定在webview上即可
例如:
原生页面:
wx.navigateTo({
url: `/page/webView/webView?pageUrl=${pageUrl}`
})
小程序webView页面
<view>
<web-view :src="pageUrl" @message="message"></web-view>
</view>
message(e) {}//接收web-view传递的参数
3、小程序A跳转到小程序B
//(1)在小程序A的原生页面跳转小程序B
wx.navigateToMiniProgram({
appId: appId,//appId
path: href,//需要跳转的页面地址
extraData: {},
envVersion: 'trial',//环境
success() {},
fail(){}
})
//(2)在小程序A的内嵌H5页面跳转小程序B
// 先从H5页面跳转至小程序A的原生页面之后操作方式同上
// 跳转成功后,需手动回退,否则返回时会停留在中转页面
wx.navigateToMiniProgram({
appId: appId,
path: href,
extraData: {},
envVersion: 'trial',
success(res) {
let pages = getCurrentPages().length-1;
wx.navigateBack({
delta:pages
});
// 打开成功
},
fail(){
wx.navigateBack();
}
})
4、小程序A的分享页面(微信浏览器打开),跳转至小程序B
html部分
<div class="parentBox">
<img :src="图片路径" />
<wx-open-launch-weapp
id="launch-btn"
:username="原始id"
:path="页面具体路径"
>
<script type="text/wxtag-template">
<style>
.linkBox {
width: 100%;
height: 100%;
position:absolute;
top:0;
left:0;
}
</style>
<div class="linkBox"></div>
</script>
</wx-open-launch-weapp>
</div>
css部分
<style>
.parentBox {
overflow: hidden;
position: relative;
}
#launch-btn {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 9;
overflow: hidden;
}
</style>
js部分
<script>
created() {
const scriptNode = document.createElement('script');
scriptNode.type = 'text/javascript';
scriptNode.src = 'https://res2.wx.qq.com/open/js/jweixin-1.6.0.js';
scriptNode.onload = this.getjssdk
document.body.appendChild(scriptNode);
}
getjssdk() {
var _this = this
let params = {
url: window.location.href.split('#')[0]//当前地址
}
// 获取签名等
axios({
type: 'get',
url: '后台接口地址',
params: params
})
.then((data) => {
if(data) {
var responseData = JSON.parse(data)
var noncestr = responseData.noncestr;
var signature = responseData.signature;
var timestamp = responseData.timestamp;
var appid = responseData.appid;
wx.config({
debug: true,
appId: appid,
timestamp: timestamp,
nonceStr: noncestr,
signature: signature,
jsApiList: [
"checkJsApi",
"showAllNonBaseMenuItem",
"onMenuShareTimeline",
"onMenuShareAppMessage",
"onMenuShareQQ",
"onMenuShareWeibo",
"onMenuShareQZone"
],
openTagList:['wx-open-launch-weapp']
});
}
})
}
</script>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!