微信小程序间使用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实现图片切换的幻灯片效果源代码
Dec 12 Javascript
浅谈被jQuery抛弃的函数及替代函数
May 03 Javascript
cocos2dx骨骼动画Armature源码剖析(三)
Sep 08 Javascript
JS实现页面跳转参数不丢失的方法
Nov 28 Javascript
Vue 2.0+Vue-router构建一个简单的单页应用(附源码)
Mar 14 Javascript
基于jQuery和CSS3实现APPLE TV海报视差效果
Jun 16 jQuery
浅谈Angular路由守卫
Aug 26 Javascript
深入理解Node.js中通用基础设计模式
Sep 19 Javascript
浅谈angularJS2中的界面跳转方法
Aug 31 Javascript
jQuery插件实现非常实用的tab栏切换功能【案例】
Feb 18 jQuery
javascript实现超好看的3D烟花特效
Jan 01 Javascript
uniapp微信小程序:key失效的解决方法
Jan 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
老机欣赏|中国60年代精品收音机
2021/03/02 无线电
php程序之die调试法 快速解决错误
2009/09/17 PHP
PHP取进制余数函数代码
2012/01/19 PHP
php 文本文件的读取效率
2012/02/10 PHP
初步介绍PHP扩展开发经验分享
2012/09/06 PHP
如何写php守护进程(Daemon)
2015/12/30 PHP
php+MySQL实现登录时验证登录名和密码是否正确
2016/05/10 PHP
jquery实现点击向下展开菜单项(伸缩导航)效果
2015/08/22 Javascript
jQuery下拉菜单的实现代码
2016/11/03 Javascript
JS实现颜色梯度与渐变效果完整实例
2016/12/30 Javascript
jQuery+HTML5实现WebGL高性能烟花绽放动画效果【附demo源码下载】
2017/08/18 jQuery
nodejs 十六进制字符串型数据与btye型数据相互转换
2018/07/30 NodeJs
JS document对象简单用法完整示例
2020/01/14 Javascript
JS Array.from()将伪数组转换成数组的方法示例
2020/03/23 Javascript
JavaScript实现10秒后再次获取验证码
2020/12/02 Javascript
Python ORM框架SQLAlchemy学习笔记之数据添加和事务回滚介绍
2014/06/10 Python
Python获取服务器信息的最简单实现方法
2015/03/05 Python
python读写ini配置文件方法实例分析
2015/06/30 Python
python 采集中文乱码问题的完美解决方法
2016/09/27 Python
Python 错误和异常代码详解
2018/01/29 Python
python 对key为时间的dict排序方法
2018/10/17 Python
Python获取数据库数据并保存在excel表格中的方法
2019/06/12 Python
pyQt5实时刷新界面的示例
2019/06/25 Python
Flask框架学习笔记之模板操作实例详解
2019/08/15 Python
解决pyecharts运行后产生的html文件用浏览器打开空白
2020/03/11 Python
详解Python直接赋值,深拷贝和浅拷贝
2020/07/09 Python
详解Python中的Lock和Rlock
2021/01/26 Python
html5服务器推送_动力节点Java学院整理
2017/07/12 HTML / CSS
照片礼物和装饰:MyPhoto
2019/11/02 全球购物
毕业生自荐书模版
2014/01/04 职场文书
幼儿园教师工作感言
2014/02/15 职场文书
安全月活动总结
2014/05/05 职场文书
司法局2014法制宣传日活动总结
2014/11/01 职场文书
市场总监岗位职责
2015/02/11 职场文书
教师个人师德工作总结2015
2015/05/12 职场文书
2017新年晚会开幕词
2016/03/03 职场文书