uniapp---微信小程序内跳转到另一个小程序

本文介绍了在微信小程序中,通过navigator标签和uni.navigateToMiniProgram接口实现小程序间的直接跳转,并重点讲解了如何正确使用extra-data传递参数和示例代码。
摘要由CSDN通过智能技术生成

小程序之间相互跳转的2种方法,以及接收另一个小程序传参

一、通过标签 navigator 直接跳转

<navigator target="miniProgram" open-type="navigate" app-id="要跳转的小程序APPID" path="要跳转的小程序页面" version="开发版/体验版/正式版" extra-data="给要跳转的小程序传的参数">
    点击跳转都其他小程序
</navigator>

例: 小程序A 和小程序B, A要唤起B小程序

关于 extra-data 的写法,如果格式写得不对会出现 extra-data="null"的情况,可以写死或动态值

1、直接写死在页面上  extra-data="{{ {name: test} }}" 

2、在data中定义页面获取 extra-data="{{wxExtraData}}"

<!-- A 小程序-->  
<!-- 注 <navigator>标签不能放在 <text>标签里 -->  
<!-- path 的路径上也可以放参数  -->  
<view>
    <navigator open-type="navigate" target="miniProgram"  app-id="B小程序的appid" path="pages/index?name=test222"  extra-data="{{ {id: 3} }}" version="develop">跳转到B小程序</navigator>
    <navigator open-type="navigate" target="miniProgram" app-id="B小程序的appid" path="pages/index?name=test222" extra-data="{{wxExtraData}}" version="develop" >跳转到B小程序</navigator>
</view>
//A小程序 点击跳转的页面的 .js文件中
data:{
    ExtraData:{
        name:"test",
        id:1
    }
}

注意:app-id="这里面千万别有空格,否则不报错还无法跳转"

 关于 target、open-type、path、extra-data、version以及其他参数详细见文档:navigator | 微信开放文档

二、通过事件触发 uni.navigateToMiniProgram 跳转

uni.navigateToMiniProgram({
    appId: '要唤起的小程序的appid',
    path: '',//要打开B小程序的页面
    extraData: { },//需要传递给目标小程序的数据,目标小程序可在 App.onLaunch,App.onShow 中获取到这份数据
    envVersion: 'develop',//打开的对应小程序环境:开发develop、体验trial、生产release 
    success(res) {
        console.log('打开成功',res)
    }
})

例:

<!-- A小程序页面 -->
<view bindtap="testTo">点击跳转到 B 小程序</view>
// A小程序 .js
testTo(options){
    uni.navigateToMiniProgram({
        appId: 'xxxx',
        path: 'pages/index?name=222',//要打开B小程序的页面,这里是index
        extraData: { //给B小程序传的参数
          name: '第二种跳转方法',
          id:1,
          age:[18,25]
        },
        envVersion: 'develop',//打开的对应小程序环境:开发、体验、生产 ,这里是开发版
        success(res) {
          console.log('打开成功',res)
        }
     })
}

补充:extraData可以从launchOptions中获取,也可以直接从被打开页面onLoad等方法中的的options中获取

uniapp一个使用 Vue.js 开发所有前端应用的框架,可以编译到 iOS、Android、H5、以及各种小程序等多个平台。在 uniapp 中开发微信小程序,如果需要嵌套使用 web-view 组件并实现从 web-view 页面关闭 web-view 并跳转微信小程序中的某页面,可以按照以下步骤进行: 1. 在 web-view 页面中注入微信小程序的 API: 由于 web-view 内的页面是运行在 webview 中的网页,我们需要在网页中注入微信小程序提供的 API,以便能够控制小程序的行为。这通常通过 `wx.miniProgram.qqJSBridge` 或者新的 `wx.miniProgram` 实现。 2. 使用小程序提供的方法关闭 web-view: 在网页中注入微信小程序 API 后,可以通过执行小程序的 `wx.miniProgram.postMessage` 方法发送消息到小程序,然后在小程序端捕获这个消息并执行关闭 web-view 的操作。示例如下: 网页端代码(web-view 内的网页): ```javascript // 假设你已经注入了微信小程序 API 到页面中 // 发送消息给小程序端,请求关闭 web-view wx.miniProgram.postMessage({ data: { action: 'closeWebview' } }); ``` 小程序端代码(用于接收 web-view 中发送的消息并关闭 web-view): ```javascript // 监听来自 web-view 的消息 const webview = plus.webview.currentWebview(); webview.addEventListener('message', function(e) { if (e.data && e.data.action === 'closeWebview') { // 执行关闭 web-view 的操作 // 这里的操作取决于你的业务逻辑 // 可能是关闭当前 web-view 或者跳转到其他页面 // 例如使用 uni.$emit 或者 vuex 等状态管理来控制页面跳转 } }); ``` 3. 跳转微信小程序中的某页面: 关闭 web-view 后,你可能需要跳转小程序的某个页面。这可以通过小程序的页面跳转 API `wx.navigateTo` 或者其他导航 API 来实现。例如: ```javascript // 跳转小程序的指定页面 wx.navigateTo({ url: '/pages/targetPage/targetPage' }); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值