小程序与小程序之间相互跳转、传值、接收参数、navigator、navigateToMiniProgram

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

目录

一、通过标签 navigator 直接跳转

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

三、小程序接收另一个小程序传参 


一、通过标签 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 | 微信开放文档

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

wx.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){
    wx.navigateToMiniProgram({
        appId: 'xxxx',
        path: 'pages/index?name=第2个',//要打开B小程序的页面,这里是index
        extraData: { //给B小程序传的参数
          name: '第二种跳转方法',
          id:1,
          age:[18,19]
        },
        envVersion: 'develop',//打开的对应小程序环境:开发、体验、生产 ,这里是开发版
        success(res) {
          console.log('打开成功',res)
        }
     })
}

关于 wx.navigateToMiniProgram 详见官方文档:wx.navigateToMiniProgram(Object object) | 微信开放文档

wx.navigateToMiniProgram(Object object) | 微信开放文档

三、小程序接收另一个小程序传参 

方式一和方式二跳转 接收参数都一样

B小程序接收A传递过来的值,直接在onShow或者onLaunch中获取

注意:onLaunch 应用程序启动时触发一次 ,之后小程序进入后台在此打开不会触发,可根据自己的场景选择具体用哪个

//B小程序 app.js 中
onShow(options) {
    console.log('index.js onShow====',options)
}
onLaunch(options) {
    console.log('app.js onLaunch====',options)
}

①、在 path 路径上拼接的参数 在 query下

②、在 extra-data 中传的参数 在 referrerInfo 下 

B小程序运行打印结果如下

①、第一种方式打印结果

②、第二种方式打印结果

 

  • 6
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 您好,微信小程序中的navigator组件可以用于页面之间跳转,如果无法跳转可能是以下原因: 1.路径错误:请检查跳转路径是否正确,路径应该是相对于小程序根目录的路径。 2.页面不存在:请检查跳转的页面是否存在,如果不存在则无法跳转。 3.权限问题:如果跳转的页面需要特定的权限才能访问,则需要在代码中进行相应的处理。 4.代码问题:如果以上都没有问题,可能是代码中存在其他问题导致无法跳转,请检查代码逻辑是否正确。 希望以上信息对您有所帮助。 ### 回答2: 微信小程序是一种轻量级的应用,用户可以在微信中直接使用,无需下载安装。微信小程序的导航功能通常使用navigator实现。通常来说,我们可以通过设置navigator的url属性来实现页面跳转。但是,有时候我们会遇到微信小程序navigator无法跳转的情况。 1.检查url链接是否正确 微信小程序navigator无法跳转时,最常见的问题是url链接问题。因此,应该首先检查url链接是否正确,是否指向了正确的页面。如果链接有误或者指向了不存在的页面,导致navigator无法跳转。 2.检查跳转的页面是否存在 在微信小程序中,每一个页面都需要在app.json配置文件中进行定义。如果没有正确的定义,就会导致页面无法跳转。因此,应该检查app.json文件中是否正确地定义了需要跳转的页面,或者页面是否被删除或重命名导致出错。 3.检查目标页面是否需要登录 在某些情况下,目标页面可能需要用户登录才能访问。如果用户未登录或登录状态失效,就可能导致navigator无法实现跳转。因此,需要检查目标页面是否需要登录,如果需要,则可以考虑在navigator中添加参数,比如需要跳转到登录页面。 4.检查小程序版本是否有更新 为了提升用户体验,微信会不断地推出新版本。如果用户的小程序版本过旧,就可能导致navigator无法正常工作。因此,需要检查小程序版本是否需要更新,如果需要,则可以提示用户更新,或在navigator中添加相应的版本要求。 总之,微信小程序navigator无法跳转可能是由于多种原因导致的。需要具体问题具体分析,根据不同的原因选择不同的解决方案。建议开发者在开发时,尽可能做好测试和调试工作,确保程序的稳定性和可靠性。 ### 回答3: 微信小程序navigator小程序中用于页面跳转的组件,其使用方法类似于web开发中的a标签。然而,有些情况下navigator可能会出现无法跳转的情况,以下是一些常见的原因和解决方法。 1.跳转路径不正确 小程序开发中,navigator跳转路径需要以“/”开头,且不能有中文字符。如果路径不正确,无法找到对应的页面,就会出现无法跳转的情况。此时需要检查跳转路径是否正确。 2.页面不存在或路径错误 如果跳转路径正确,但仍然无法跳转,那么可能是因为目标页面不存在或路径错误。可以检查一下目标页面文件是否存在,以及路径是否正确。 3.页面跳转逻辑问题 在一些特殊场景中,页面跳转可能会受到一些限制或者约束,例如某些页面需要登录后才能访问等。此时需要检查一下页面跳转所需的逻辑是否正确。 4.网络请求问题 有时候页面跳转也会受到网络请求影响,例如需要先请求数据再跳转页面等。此时需要确保网络请求顺利,并且保证跳转的逻辑正确。 综上所述,微信小程序navigator无法跳转的原因可能有多种,需要仔细查看跳转的代码,逐一排查问题。如果以上方法都无法解决问题,可以联系微信小程序官方客服进行咨询和解决。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值