微信小程序开发打开另一个小程序的实现方法


Posted in Javascript onMay 17, 2020

微信小程序打开另一个小程序,有两种方法:1.超链接;2.点击按钮。

全局配置:

跳转到其他小程序,需要在当前小程序全局配置中配置需要跳转的小程序列表,代码如下:

App.json

{
 ...
 "navigateToMiniProgramAppIdList": [
  "wxe5f52902cf4de896"
 ]
}

否则会弹出以下错误提示:

微信小程序开发打开另一个小程序的实现方法

超链接实现跳转到小程序:

demo.wxml

<navigator 
 target="miniProgram" 
 open-type="navigate" 
 app-id="wxdbcxxxxxxxx985f" 
 path="pages/index/index?goods_id=201" 
 extra-data="{{extraData}}"
 version="develop" 
 bindsuccess="toMiniProgramSuccess">点击超链接打开绑定的小程序</navigator>

demo.js

data:{
extraData: {


from: '优享新可能nav'

}
}
... 
toMiniProgramSuccess(res){
  //从其他小程序返回的时候触发
  wx.showToast({
   title: '通过超链接跳转其他小程序成功返回了'
  })
}

相关参数:

属性名 类型 默认值 说明
target String self 设置为miniProgram,则跳转都其他小程序
app-id String   要打开的小程序 appId
path String   打开的页面路径,如果为空则打开首页,可带参数
extra-data Object   需要传递给目标小程序的数据,目标小程序可在 App.onLaunch(),App.onShow() 中获取到这份数据。详情
version version release 要打开的小程序版本,有效值 develop(开发版),trial(体验版),release(正式版),仅在当前小程序为开发版或体验版时此参数有效;如果当前小程序是正式版,则打开的小程序必定是正式版。
bindsuccess String   跳转小程序成功
bindfail String   跳转小程序失败
bindcomplete String   跳转小程序完成

备注:

1.extra-data必须为Object类型,可以在data中定义,然后模板中引用;

2.version可以为空,以小程序当前环境为准。如果设置有值,则只在当前小程序为非正式版时有效。如果设置为develop,那么最好先用微信预览最新编译过的需要跳转到的小程序,然后再扫码预览原来的小程序。不然的话跳转到的小程序可能不是最新版;

3.bindsuccess回调事件在跳转到小程序返回之后触发,wx.navigateToMiniProgram Api则是在跳转同时触发。

通过按钮单击事件实现:

demo.wxml

<button bindtap='navigateToMiniProgram'>
点击按钮打开其他小程序
</button>

demo.js

navigateToMiniProgram(){
  wx.navigateToMiniProgram({
   appId: 'wxdbcxxxxx985f',
   path: 'pages/index/index?goods_id=201',
   extraData: {
    from: 'xxxxx'
   },
   envVersion: 'develop',
   success(res) {
    // 打开其他小程序成功同步触发
    wx.showToast({
     title: '跳转成功'
    })
   }
  })
 }

相关参数:

属性 类型 默认值 是否必填 说明
appId string   要打开的小程序 appId
path string   打开的页面路径,如果为空则打开首页
extraData object   需要传递给目标小程序的数据,目标小程序可在 App.onLaunch,App.onShow 中获取到这份数据。
envVersion string release 要打开的小程序版本。仅在当前小程序为开发版或体验版时此参数有效。如果当前小程序是正式版,则打开的小程序必定是正式版。
success function   接口调用成功的回调函数
fail function   接口调用失败的回调函数
complete function   接口调用结束的回调函数(调用成功、失败都会执行)

目标小程序接收来源小程序传递过来的参数:

目标小程序app.js

App({
 onLaunch: function (options) {
  console.log("referrerInfo:::", options.referrerInfo)
 }
  ...
})

输出:

{"appId":"wxcc41e47562b08129","extraData":{"from":"xxxxx"}}

开发者工具调试被打开的小程序时候正确的接收参数:

开发者工具新建编译模式:

微信小程序开发打开另一个小程序的实现方法

输出如下:

微信小程序开发打开另一个小程序的实现方法

注意:

1. 先选择进入场景,输入1037就能快速定位到从小程序进入这个选项,然后就会显示设置appid及extraData的输入框;

2. 尤其要注意extraData的格式,与来源小程序中传递过来的格式都有点不一样,请严格参照下边的代码:

{"from":"xxxxx"}

注意事项:

1.navigateToMiniProgram Api需要用户主动触发跳转,且在跳转至其他小程序前,将统一增加弹窗,询问是否跳转,用户确认后才可以跳转其他小程序。如果用户点击取消,则回调fail cancel;

2.每个小程序可跳转的其他小程序数量限制为不超过 10 个;

3.在开发者工具上调用此 API 并不会真实的跳转到另外的小程序,但是开发者工具会校验本次调用跳转是否成功。

4. 开发者工具上支持被跳转的小程序处理接收参数的调试。

到此这篇关于微信小程序开发打开另一个小程序的实现方法的文章就介绍到这了,更多相关小程序打开另一个小程序内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
Jquery post传递数组方法实现思路及代码
Apr 28 Javascript
如何通过javascript操作web控件的自定义属性
Nov 25 Javascript
如何实现textarea里的不同文本显示不同颜色
Jan 20 Javascript
分享一个自己动手写的jQuery分页插件
Aug 28 Javascript
Jquery遍历Json数据的方法
Apr 20 Javascript
AngularJS 所有版本下载地址
Sep 14 Javascript
火狐和ie下获取javascript 获取event的方法(推荐)
Nov 26 Javascript
浅谈Vue的加载顺序探讨
Oct 25 Javascript
Vue 去除路径中的#号
Apr 19 Javascript
vue项目上传Github预览的实现示例
Nov 06 Javascript
微信小程序动态显示项目倒计时
Jun 20 Javascript
js滚轮事件 js自定义滚动条的实现
Jan 18 Javascript
微信小程序开发之获取用户手机号码(php接口解密)
May 17 #Javascript
关于AngularJS中几种Providers的区别总结
May 17 #Javascript
VueCli4项目配置反向代理proxy的方法步骤
May 17 #Javascript
JavaScript链式调用原理与实现方法详解
May 16 #Javascript
JavaScript设计模式---单例模式详解【四种基本形式】
May 16 #Javascript
JavaScript接口实现方法实例分析
May 16 #Javascript
JavaScript 类的封装操作示例详解
May 16 #Javascript
You might like
PHP新手上路(六)
2006/10/09 PHP
海河写的 Discuz论坛帖子调用js的php代码
2007/08/23 PHP
用Simple Excel导出xls实现方法
2012/12/06 PHP
php readfile()修改文件上传大小设置
2017/08/11 PHP
IE和Firefox在JavaScript应用中的兼容性探讨
2008/04/01 Javascript
基于Bootstrap实现的下拉菜单手机端不能选择菜单项的原因附解决办法
2016/07/22 Javascript
javascript简单实现等比例缩小图片的方法
2016/07/27 Javascript
基于javascript 显式转换与隐式转换(详解)
2017/12/15 Javascript
详解JavaScript的BUG和错误
2018/05/07 Javascript
浅谈JavaScript 代码简洁之道
2019/01/09 Javascript
AJAX在JQuery中的应用详解
2019/01/30 jQuery
在vue项目中引入vue-beauty操作方法
2019/02/11 Javascript
JS实现audio音频剪裁剪切复制播放与上传(步骤详解)
2020/07/28 Javascript
[06:07]刀塔密之二:攻之吾命受之吾幸
2014/07/03 DOTA
从零学Python之引用和类属性的初步理解
2014/05/15 Python
Python的socket模块源码中的一些实现要点分析
2016/06/06 Python
浅谈python中copy和deepcopy中的区别
2017/10/23 Python
Python FTP两个文件夹间的同步实例代码
2018/05/25 Python
Python 经典面试题 21 道【不可错过】
2018/09/21 Python
django foreignkey(外键)的实现
2019/07/29 Python
在Django中预防CSRF攻击的操作
2020/03/13 Python
简单了解Java Netty Reactor三种线程模型
2020/04/26 Python
python代码实现将列表中重复元素之间的内容全部滤除
2020/05/22 Python
如何让python的运行速度得到提升
2020/07/08 Python
浅谈Selenium+Webdriver 常用的元素定位方式
2021/01/13 Python
兰蔻俄罗斯官方网站:Lancome俄罗斯
2019/12/09 全球购物
俄罗斯最大的香水和化妆品网上商店:Randewoo
2020/11/05 全球购物
广告学专业应届生求职信
2013/10/01 职场文书
自我评价200字分享
2013/12/17 职场文书
阳光体育活动方案
2014/02/16 职场文书
2014最新离职证明范本
2014/09/12 职场文书
查摆剖析材料范文
2014/09/30 职场文书
2014年个人年终总结
2015/03/09 职场文书
升职自我推荐信范文
2015/03/25 职场文书
浅谈python数据类型及其操作
2021/05/25 Python
python基础之函数的定义和调用
2021/10/24 Python