微信小程序间使用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 相关文章推荐
特殊字符、常规符号及其代码对照表
Jun 26 Javascript
JQuery 引发两次$(document.ready)事件
Jan 15 Javascript
javascript实现信息的显示和隐藏如注册页面
Dec 03 Javascript
eclipse导入jquery包后报错的解决方法
Feb 17 Javascript
node.js中的fs.fstat方法使用说明
Dec 15 Javascript
JavaScript编程中window的location与history对象详解
Oct 26 Javascript
JavaScript转换与解析JSON方法实例详解
Nov 24 Javascript
JSP基于Bootstrap分页显示实例解析
Jun 12 Javascript
javascript insertAfter()定义与用法示例
Jul 25 Javascript
vue项目打包后打开页面空白解决办法
Jun 29 Javascript
微信小程序实现点击卡片 翻转效果
Sep 04 Javascript
小程序自定义轮播图圆点组件
Jun 25 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基础知识:类与对象(1)
2006/12/13 PHP
实现php加速的eAccelerator dll支持文件打包下载
2007/09/30 PHP
Ha0k 0.3 PHP 网页木马修改版
2009/10/11 PHP
PHP array 的加法操作代码
2010/07/24 PHP
深入php数据采集的详解
2013/06/02 PHP
JS 动态加载脚本的4种方法
2009/05/05 Javascript
利用json获取字符出现次数的代码
2012/03/22 Javascript
javascript静态页面传值的三种方法分享
2013/11/12 Javascript
20个实用的JavaScript技巧分享
2014/11/28 Javascript
ECharts仪表盘实例代码(附源码下载)
2016/02/18 Javascript
Bootstrap框架动态生成Web页面文章内目录的方法
2016/05/12 Javascript
详解Angular.js指令中scope类型的几种特殊情况
2017/02/21 Javascript
node.js爬虫爬取拉勾网职位信息
2017/03/14 Javascript
JavaScript中附件预览功能实现详解(推荐)
2017/08/15 Javascript
BootStrap Validator 根据条件在JS中添加或移除校验操作
2017/10/12 Javascript
Vue数据双向绑定的深入探究
2018/11/27 Javascript
vue+elementUI实现表格关键字筛选高亮
2020/10/26 Javascript
小程序开发之模态框组件封装
2020/04/23 Javascript
python实现分页效果
2017/10/25 Python
Python2与Python3的区别实例分析
2019/04/11 Python
用pycharm开发django项目示例代码
2019/06/13 Python
pytorch 利用lstm做mnist手写数字识别分类的实例
2020/01/10 Python
基于Python3.7.1无法导入Numpy的解决方式
2020/03/09 Python
python使用OpenCV模块实现图像的融合示例代码
2020/04/10 Python
安装pyecharts1.8.0版本后导入pyecharts模块绘图时报错: “所有图表类型将在 v1.9.0 版本开始强制使用 ChartItem 进行数据项配置 ”的解决方法
2020/08/18 Python
python使用matplotlib:subplot绘制多个子图的示例
2020/09/24 Python
CSS3实现点击放大的动画实例代码
2017/02/27 HTML / CSS
利用CSS3动画实现圆圈由小变大向外扩散的效果实例
2018/09/10 HTML / CSS
欧克利英国官网:Oakley英国
2019/08/24 全球购物
英国购买威士忌网站:Master of Malt
2019/09/26 全球购物
Laravel中Kafka的使用详解
2021/03/24 PHP
工艺工程师工作职责
2013/11/23 职场文书
违反学校规定检讨书
2014/01/18 职场文书
六年级数学教学反思
2014/02/03 职场文书
人力资源本科毕业生求职信
2014/06/04 职场文书
公司2014年度工作总结
2014/12/10 职场文书