微信小程序间使用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 相关文章推荐
JQuery 学习笔记 选择器之三
Jul 23 Javascript
JavaScript this调用规则说明
Mar 08 Javascript
jquery dialog键盘事件代码
Aug 01 Javascript
浅析JavaScript动画
Jun 10 Javascript
vue.js+boostrap项目实践(案例详解)
Sep 21 Javascript
基于Bootstrap下拉框插件bootstrap-select使用方法详解
Aug 07 Javascript
vue项目每30秒刷新1次接口的实现方法
Dec 04 Javascript
微信小程序发送短信验证码完整实例
Jan 07 Javascript
详解iframe跨域的几种常用方法(小结)
Apr 29 Javascript
ES2020 新特性(种草)
Jan 12 Javascript
js、jquery实现列表模糊搜索功能过程解析
Mar 27 jQuery
在Echarts图中给坐标轴加一个标识线markLine
Jul 20 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
PHP4实际应用经验篇(3)
2006/10/09 PHP
PHP基础知识介绍
2013/09/17 PHP
PHP基于SMTP协议实现邮件发送实例代码
2017/04/27 PHP
Javascript中Eval函数的使用说明
2008/10/11 Javascript
Extjs Ajax 乱码问题解决方案
2009/04/15 Javascript
JQuery+JS实现仿百度搜索结果中关键字变色效果
2011/08/02 Javascript
基于JQuery 滑动与动画的说明介绍
2013/04/18 Javascript
Javascript中常见的校验如域名、手机、邮箱等等
2014/01/02 Javascript
高性能JavaScript 重排与重绘(2)
2015/08/11 Javascript
基于vue的下拉刷新指令和滚动刷新指令
2016/12/23 Javascript
js定时器+简单的动画效果实例
2017/11/10 Javascript
如何将你的AngularJS1.x应用迁移至React的方法
2018/02/01 Javascript
GOJS+VUE实现流程图效果
2018/12/01 Javascript
Nodejs监听日志文件的变化的过程解析
2019/08/04 NodeJs
javascript 使用sleep函数的常见方法详解
2020/04/26 Javascript
vue 授权获取微信openId操作
2020/11/13 Javascript
python根据文件大小打log日志
2014/10/09 Python
python使用PyGame播放Midi和Mp3文件的方法
2015/04/24 Python
Python2.7下安装Scrapy框架步骤教程
2017/12/22 Python
python实现定时自动备份文件到其他主机的实例代码
2018/02/23 Python
pycharm+PyQt5+python最新开发环境配置(踩坑)
2019/02/11 Python
详解Selenium+PhantomJS+python简单实现爬虫的功能
2019/07/14 Python
Python元组 tuple的概念与基本操作详解【定义、创建、访问、计数、推导式等】
2019/10/30 Python
使用NumPy读取MNIST数据的实现代码示例
2019/11/20 Python
浅谈ROC曲线的最佳阈值如何选取
2020/02/28 Python
python实现梯度下降算法的实例详解
2020/08/17 Python
无惧面试,带你搞懂python 装饰器
2020/08/17 Python
Python爬虫实现selenium处理iframe作用域问题
2021/01/27 Python
视图的作用
2014/12/19 面试题
纪检干部先进事迹材料
2014/08/23 职场文书
城管执法人员个人对照检查材料思想汇报
2014/09/29 职场文书
2014年招商工作总结
2014/11/22 职场文书
2015新年联欢晚会开场白
2014/12/14 职场文书
创业项目大全(适合在家创业的项目)
2019/08/15 职场文书
SQL Server使用导出向导功能
2022/04/08 SQL Server
Sentry的安装、配置、使用教程(Sentry日志手机系统)
2022/07/23 Python