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


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 相关文章推荐
JavaScript中获取未知对象属性的代码
Apr 27 Javascript
Javascript的数组与字典用法与遍历对象的属性技巧
Nov 07 Javascript
深入理解JavaScript 闭包究竟是什么
Apr 12 Javascript
直接在JS里创建JSON数据然后遍历使用
Jul 25 Javascript
jQuery中eq()方法用法实例
Jan 05 Javascript
js判断手机访问或者PC的几个例子(常用于手机跳转)
Dec 15 Javascript
详解angular中通过$location获取路径(参数)的写法
Mar 21 Javascript
Node.js使用Koa搭建 基础项目
Jan 08 Javascript
Vue.js结合bootstrap前端实现分页和排序效果
Dec 29 Javascript
Node配合WebSocket做多文件下载以及进度回传
Nov 07 Javascript
JS实现滑动拼图验证功能完整示例
Mar 29 Javascript
SpringBoot+Vue开发之Login校验规则、实现登录和重置事件
Oct 19 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
关于文本留言本的分页代码
2006/10/09 PHP
PHP 函数call_user_func和call_user_func_array用法详解
2014/03/02 PHP
php模板引擎技术简单实现
2016/03/15 PHP
PHP格式化MYSQL返回float类型的方法
2016/03/30 PHP
javascript Xml增删改查(IE下)操作实现代码
2009/01/30 Javascript
40个有创意的jQuery图片、内容滑动及弹出插件收藏集之一
2011/12/31 Javascript
检查输入的是否是数字使用keyCode配合onkeypress事件
2014/01/23 Javascript
如何将网页表格内容导入excel
2014/02/18 Javascript
jquery单行文字向上滚动效果的实现代码
2014/09/05 Javascript
javascript实现避免页面按钮重复提交
2015/01/08 Javascript
jQuery实现复选框批量选择与反选的方法
2015/06/17 Javascript
js实现Form栏显示全格式时间时钟效果代码
2015/08/19 Javascript
IntersectionObserver API 详解篇
2016/12/11 Javascript
jQuery使用正则验证15/18身份证的方法示例
2017/04/27 jQuery
20170918 前端开发周报之JS前端开发必看
2017/09/18 Javascript
Angular4自制一个市县二级联动组件示例
2017/11/21 Javascript
详解基于Vue-cli搭建的项目如何和后台交互
2018/06/29 Javascript
vue改变对象或数组时的刷新机制的方法总结
2019/04/24 Javascript
深入理解JS异步编程-Promise
2019/06/03 Javascript
[01:19:46]EG vs Secret 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.21.mp4
2020/07/19 DOTA
Python命名空间详解
2014/08/18 Python
解决python中用matplotlib画多幅图时出现图形部分重叠的问题
2019/07/07 Python
python实现多进程通信实例分析
2019/09/01 Python
python基本算法之实现归并排序(Merge sort)
2020/09/01 Python
Scrapy项目实战之爬取某社区用户详情
2020/09/17 Python
香港礼品网站:GiftU eshop
2017/09/01 全球购物
蒙蒂塞罗商店:Monticello Shop
2018/11/25 全球购物
应届毕业生求职信范例分享
2013/12/17 职场文书
通信生自我鉴定
2014/01/18 职场文书
《小山羊和小灰兔》教学反思
2014/02/19 职场文书
开学典礼决心书
2014/03/11 职场文书
投标服务承诺书
2014/05/28 职场文书
品牌转让协议书
2014/08/20 职场文书
在职证明格式样本
2015/06/15 职场文书
小学运动会加油稿
2015/07/22 职场文书
公司车辆管理制度
2015/08/04 职场文书