微信小程序间使用navigator跳转传值问题实例分析


Posted in Javascript onMarch 27, 2020

本文实例讲述了微信小程序间使用navigator跳转传值问题。分享给大家供大家参考,具体如下:

前言

这次讲一下我用 navigator 组件实现从一个小程序跳转到另一个小程序的过程中遇到的问题。

extra-data 如何构建

由于上网查资料得知 extra-data 是 json 格式。那么就不能在 HTML 属性中直接写。

那么剩下只有在 JS 里构建了。

首先在 HTML 里,绑定 extra-data的值到 extra 变量

<navigator class="navi" url="" target="miniProgram" app-id="wxxxxxxxxxxxxxxx" extra-data="{{ extra }}" version="{{ version }}" path="/pages/index/index">
<image src="{{img}}" mode="scaleToFill" class="img">
</image>
</navigator>

然后在 JS 里构建这个变量

Page({
 data: {
  extra: {
   "color": '', // 动态获取
   "partnerUsername": '99',
  },
 },
})

这里有个问题,就是如果 extra 里的 color 等变量是动态从远程 api 获取到的,那么应该怎么赋值。

我凭直觉写 extra.color = 'xx' ,尝试了下不行。查阅资料发现,应该这么写:

wx.request({
  url: url,
  data: {
    color: '',
  },
  header: {
    'content-type': 'application/json'
  },
  success: function (res) {
    that.setData({
      "extra.color": app.globalData.color,
    });
  }
});

还可以在 path 属性值后面跟参数来向目标小程序传值

通过搜索发现[这篇文章](https://cloud.tencent.com/developer/article/1157552),我试了他给出的解决方案,是可行的,现在记录在下面:

<navigator class="navi" url="" target="miniProgram" app-id="wxxxxxxxxxxxx" version="{{ version }}" path="zh_tcwq/pages/index/index?color={{ colorSet }}&partner={{ partner }}">
<image src="{{src}}" mode="scaleToFill" class="img">
</image>
</navigator>
// 源小程序
this.setData({
  colorSet: app.globalData.color,
  partner: app.globalData.partnerUsername,
});
// 目标小程序
onShow: function (options) {
  console.log(options.query.color + options.query.partner);
}

奇怪的问题(可能是bug):打开调试时,目标小程序能获取到动态的 extra-data,关闭后无法获取到

原因是我没配合法域名,所以动态从 api 获取的数据获取不到。

希望本文所述对大家微信小程序开发有所帮助。

Javascript 相关文章推荐
js跟随滚动条滚动浮动代码
Dec 31 Javascript
js定义对象或数组直接量时各浏览器对多余逗号的处理(json)
Mar 05 Javascript
深入理解JavaScript系列(6) 强大的原型和原型链
Jan 15 Javascript
捕获和分析JavaScript Error的方法
Mar 25 Javascript
Bootstrap教程JS插件弹出框学习笔记分享
May 17 Javascript
onmouseover事件和onmouseout事件全面理解
Aug 15 Javascript
jquery validate表单验证插件
Sep 06 Javascript
利用Console来Debug的10个高级技巧汇总
Mar 26 Javascript
video.js 一个页面同时播放多个视频的实例代码
Nov 27 Javascript
JavaScript实现无限级递归树的示例代码
Mar 29 Javascript
Vue程序调试的方法
Jun 17 Javascript
JS前端使用Canvas快速实现手势解锁特效
Sep 23 Javascript
vue跳转页面的几种方法(推荐)
Mar 26 #Javascript
Vue项目页面跳转时浏览器窗口上方显示进度条功能
Mar 26 #Javascript
JavaScript定时器使用方法详解
Mar 26 #Javascript
js实现时钟定时器
Mar 26 #Javascript
如何解决vue在ios微信&quot;复制链接&quot;功能问题
Mar 26 #Javascript
原生JS实现留言板
Mar 26 #Javascript
vue在线动态切换主题色方案
Mar 26 #Javascript
You might like
中国收音机工业发展史
2021/03/02 无线电
德劲1107的电路分析与打磨
2021/03/02 无线电
PHP 读取文件内容代码(txt,js等)
2009/12/06 PHP
ThinkPHP CURD方法之table方法详解
2014/06/18 PHP
PHP会话控制实例分析
2016/12/24 PHP
thinkPHP框架中layer.js的封装与使用方法示例
2019/01/18 PHP
PHP PDOStatement::columnCount讲解
2019/01/30 PHP
获取URL地址中的文件名和参数的javascript代码
2009/09/02 Javascript
google jQuery 引用文件,jQuery 引用地址集合(jquery 1.2.6至jquery1.5.2)
2011/04/24 Javascript
Javascript显示和隐藏ul列表的方法
2015/07/15 Javascript
javascript实现禁止复制网页内容汇总
2015/12/30 Javascript
javascript 广告移动特效的实现代码
2016/06/25 Javascript
浅谈JS继承_寄生式继承 &amp; 寄生组合式继承
2016/08/16 Javascript
解决html-jquery/js引用外部图片时遇到看不了或出现403的问题
2017/09/22 jQuery
Bootstrap table中toolbar新增条件查询及refresh参数使用方法
2018/05/18 Javascript
layui table 列宽百分比显示的实现方法
2019/09/28 Javascript
JavaScript中交换值的10种方法总结
2020/08/18 Javascript
javascript中导出与导入实现模块化管理教程
2020/12/03 Javascript
[01:22:42]2014 DOTA2华西杯精英邀请赛 5 24 DK VS LGD
2014/05/26 DOTA
在Django中限制已登录用户的访问的方法
2015/07/23 Python
浅析Git版本控制器使用
2017/12/10 Python
Centos下实现安装Python3.6和Python2共存
2018/08/15 Python
详解Python 定时框架 Apscheduler原理及安装过程
2019/06/14 Python
使用jupyter Nodebook查看函数或方法的参数以及使用情况
2020/04/14 Python
Python执行时间的几种计算方法
2020/07/31 Python
MySQL面试题
2014/01/12 面试题
大专毕业生自我鉴定
2013/11/21 职场文书
美术国培研修感言
2014/02/12 职场文书
老公爱的承诺书
2014/03/31 职场文书
一份恶作剧的检讨书
2014/09/13 职场文书
大一新生检讨书
2014/10/29 职场文书
2014年信访工作总结
2014/11/17 职场文书
2014年学校卫生工作总结
2014/11/20 职场文书
2015最新学生自我评价范文
2015/03/03 职场文书
Mysql 性能监控及调优
2021/04/06 MySQL
MySQL数据库如何使用Shell进行连接
2022/04/12 MySQL