微信小程序间使用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 相关文章推荐
javascript 伪数组实现方法
Oct 11 Javascript
js 浏览器事件介绍
Mar 30 Javascript
Jquery实现点击切换图片并隐藏显示内容(2种方法实现)
Apr 11 Javascript
juery框架写的弹窗效果适合新手
Nov 27 Javascript
JavaScript简介
Feb 15 Javascript
jQuery实现限制textarea文本框输入字符数量的方法
May 28 Javascript
JavaScript 2048 游戏实例代码(简单易懂)
Mar 25 Javascript
javascript实现无法关闭的弹框
Nov 27 Javascript
原生JS实现图片左右轮播
Dec 30 Javascript
Vue 自定义动态组件实例详解
Mar 28 Javascript
在vue中使用echars实现上浮与下钻效果
Nov 08 Javascript
vue添加锚点,实现滚动页面时锚点添加相应的class操作
Aug 10 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
Php 构造函数construct的前下划线是双的_
2009/12/08 PHP
Nginx服务器上安装并配置PHPMyAdmin的教程
2015/08/18 PHP
PHP中STDCLASS用法实例分析
2016/11/11 PHP
详谈php ip2long 出现负数的原因及解决方法
2017/04/05 PHP
ThinkPHP框架整合微信支付之刷卡模式图文详解
2019/04/10 PHP
jquery dialog open后,服务器端控件失效的快速解决方法
2013/12/19 Javascript
angularJS 中input示例分享
2015/02/09 Javascript
JavaScript 控制字体大小设置的方法
2016/11/23 Javascript
Vue.js组件tree实现无限级树形菜单
2016/12/02 Javascript
详解基于Angular4+ server render(服务端渲染)开发教程
2017/08/28 Javascript
Vue 莹石摄像头直播视频实例代码
2018/08/31 Javascript
Vue实现底部侧边工具栏的实例代码
2018/09/03 Javascript
React router动态加载组件之适配器模式的应用详解
2018/09/12 Javascript
Js 利用正则表达式和replace函数获取string中所有被匹配到的文本(推荐)
2018/10/28 Javascript
JS实现数组去重,显示重复元素及个数的方法示例
2019/01/21 Javascript
Jquery的Ajax技术使用方法
2019/01/21 jQuery
通过seajs实现JavaScript的模块开发及按模块加载
2019/06/06 Javascript
如何自定义微信小程序tabbar上边框的颜色
2019/07/09 Javascript
Vue项目页面跳转时浏览器窗口上方显示进度条功能
2020/03/26 Javascript
Node.js API详解之 console模块用法详解
2020/05/12 Javascript
js实现拖拽元素选择和删除
2020/08/25 Javascript
python网络编程调用recv函数完整接收数据的三种方法
2017/03/31 Python
python批量替换页眉页脚实例代码
2018/01/22 Python
pandas.loc 选取指定列进行操作的实例
2018/05/18 Python
Python 使用PIL中的resize进行缩放的实例讲解
2018/08/03 Python
用Cython加速Python到“起飞”(推荐)
2019/08/01 Python
python可视化篇之流式数据监控的实现
2019/08/07 Python
基于Python中的yield表达式介绍
2019/11/19 Python
解决tensorflow打印tensor有省略号的问题
2020/02/04 Python
利用Python将图片中扭曲矩形的复原
2020/09/07 Python
家长会学生演讲稿
2014/04/26 职场文书
未受刑事制裁公证证明
2014/09/20 职场文书
出售房屋委托书范本
2014/09/24 职场文书
2015年医生个人工作总结
2015/04/25 职场文书
祝福语集锦:给妹妹结婚的祝福语
2019/12/18 职场文书
HTML基础详解(上)
2021/10/16 HTML / CSS