微信小程序间使用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 相关文章推荐
IE6浏览器下resize事件被执行了多次解决方法
Dec 11 Javascript
根据IP的地址,区分不同的地区,查看不同的网站页面的js代码
Feb 26 Javascript
三种动态加载js的jquery实例代码另附去除js方法
Apr 30 Javascript
jQuery实现隔行背景色变色
Nov 24 Javascript
HTML5实现留言和回复页面样式
Jul 22 Javascript
Js查找字符串中出现次数最多的字符及个数实例解析
Sep 05 Javascript
AngularJS通过ng-route实现基本的路由功能实例详解
Dec 13 Javascript
js实现ATM机存取款功能
Oct 27 Javascript
详解wepy开发小程序踩过的坑(小结)
May 22 Javascript
对Layer弹窗使用及返回数据接收的实例详解
Sep 26 Javascript
Vue2.0 $set()的正确使用详解
Jul 28 Javascript
Vue如何循环提取对象数组中的值
Nov 18 Vue.js
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
星际中一些鲜为人知的详细资料
2020/03/04 星际争霸
Snoopy类使用小例子
2008/04/15 PHP
Thinkphp调用Image类生成缩略图的方法
2015/03/07 PHP
利用PHP获取网站访客的所在地位置
2017/01/18 PHP
php实现微信支付之现金红包
2018/05/30 PHP
基于Jquery的温度计动画效果
2010/06/18 Javascript
Javascript计算时间差的函数分享
2011/07/04 Javascript
JSON为什么那样红为什么要用json(另有洞天)
2012/12/26 Javascript
JS根据变量保存方法名并执行方法示例
2014/04/04 Javascript
wap图片滚动特效无css3元素纯js脚本编写
2014/08/22 Javascript
javascript操作Cookie(设置、读取、删除)方法详解
2015/03/18 Javascript
表单中单选框添加选项和移除选项
2016/07/04 Javascript
vue.js项目中实用的小技巧汇总
2017/11/29 Javascript
angular.js和vue.js中实现函数去抖示例(debounce)
2018/01/18 Javascript
Vue写一个简单的倒计时按钮功能
2018/04/20 Javascript
详解vue-cli3开发Chrome插件实践
2019/05/29 Javascript
Vue开发环境中修改端口号的实现方法
2019/08/15 Javascript
Vue scoped及deep使用方法解析
2020/08/01 Javascript
[03:59]第二届DOTA2亚洲邀请赛选手传记-VGJ.rOtk
2017/04/03 DOTA
Python中装饰器的一个妙用
2015/02/08 Python
Python中实现参数类型检查的简单方法
2015/04/21 Python
python实现linux下使用xcopy的方法
2015/06/28 Python
在Python的Flask框架中验证注册用户的Email的方法
2015/09/02 Python
Python中eval带来的潜在风险代码分析
2017/12/11 Python
Python标准库笔记struct模块的使用
2018/02/22 Python
通过python将大量文件按修改时间分类的方法
2018/10/17 Python
python占位符输入方式实例
2019/05/27 Python
pyqt5 使用label控件实时显示时间的实例
2019/06/14 Python
python3 requests库文件上传与下载实现详解
2019/08/22 Python
python单例模式原理与创建方法实例分析
2019/10/26 Python
python 实现生成均匀分布的点
2019/12/05 Python
土木工程毕业生推荐信
2013/10/28 职场文书
债务追讨授权委托书范本
2014/10/16 职场文书
校园之声广播稿
2015/08/18 职场文书
离婚协议书范文2016
2016/03/18 职场文书
python获取对象信息的实例详解
2021/07/07 Python