微信小程序间使用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 相关文章推荐
如何快速的呈现我们的网页的技巧整理
Jul 01 Javascript
执行iframe中的javascript方法
Oct 07 Javascript
基于jQuery的弹出消息插件 DivAlert之旅(一)
Apr 01 Javascript
jquery mobile 移动web(5)
Dec 20 Javascript
利用Angularjs和原生JS分别实现动态效果的输入框
Sep 01 Javascript
微信小程序中的swiper组件详解
Apr 14 Javascript
用户管理的设计_jquery的ajax实现二级联动效果
Jul 13 jQuery
Vue v2.4中新增的$attrs及$listeners属性使用教程
Jan 08 Javascript
node.js部署之启动后台运行forever的方法
May 23 Javascript
微信小程序发送短信验证码完整实例
Jan 07 Javascript
详解小程序用户登录状态检查与更新实例
May 15 Javascript
微信小程序国际化探索实现(附源码地址)
May 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
WordPress判断用户是否登录的代码
2011/03/17 PHP
解析php中获取url与物理路径的总结
2013/06/21 PHP
php实现将数组转换为XML的方法
2015/03/09 PHP
php禁用函数设置及查看方法详解
2016/07/25 PHP
yii2中dropDownList实现二级和三级联动写法
2017/04/26 PHP
php字符串函数 str类常见用法示例
2020/05/15 PHP
[原创]后缀就扩展名为js的文件是什么文件
2007/12/06 Javascript
JS中的prototype与面向对象的实例讲解
2013/05/22 Javascript
javascript jq 弹出层实例
2013/08/25 Javascript
js window.onload 加载多个函数和追加函数详解
2014/01/08 Javascript
js中 javascript:void(0) 用法详解
2015/08/11 Javascript
vue.js入门(3)——详解组件通信
2016/12/02 Javascript
javascript实现页面滚屏效果
2017/01/17 Javascript
搭建简单的nodejs http服务器详解
2017/03/09 NodeJs
Angular实现下拉框模糊查询功能示例
2018/01/03 Javascript
Vue表单类的父子组件数据传递示例
2018/05/03 Javascript
react-native动态切换tab组件的方法
2018/07/07 Javascript
详解处理Vue单页面应用SEO的另一种思路
2018/11/09 Javascript
js模拟实现烟花特效
2020/03/10 Javascript
Centos5.x下升级python到python2.7版本教程
2015/02/14 Python
Python中每次处理一个字符的5种方法
2015/05/21 Python
浅谈Python单向链表的实现
2015/12/24 Python
Python3非对称加密算法RSA实例详解
2018/12/06 Python
pyqt5 实现在别的窗口弹出进度条
2019/06/18 Python
python shutil文件操作工具使用实例分析
2019/12/25 Python
Opencv求取连通区域重心实例
2020/06/04 Python
解决Keras中循环使用K.ctc_decode内存不释放的问题
2020/06/29 Python
Python Socket多线程并发原理及实现
2020/12/11 Python
加拿大最大的书店:Indigo
2017/01/01 全球购物
Lovedrobe官网:英国领先的大码服装品牌
2019/09/19 全球购物
客服主管岗位职责
2013/12/13 职场文书
一年级班主任工作总结2014
2014/11/08 职场文书
爱的承诺书
2015/01/20 职场文书
大学运动会通讯稿
2015/07/18 职场文书
《童年》读后感(三篇)
2019/08/27 职场文书
使用Selenium实现微博爬虫(预登录、展开全文、翻页)
2021/04/13 Python