Write By Monkeyfly
以下内容均为原创,如需转载请注明出处。
前提
- 广告位中的图片需要点击跳转至指定的小程序。
- 当前小程序和要跳转到指定的小程序,二者之间已经满足了
都是同一公众号下关联的小程序的前提。 - 不满足前提,无法在一个小程序内打开另一个小程序。
tip:只有同一公众号下的关联的小程序之间才可相互跳转。 详情入口(点击查看)
问题再现
1.实现方式:使用 <navigator> 组件
<navigator target="miniProgram" open-type="navigate" app-id="" path="" version="release"> <image src=""></image></navigator>2.错误提示
VM299:2 <navigator/> should have url attribute when using navigateTo, redirectTo or switchTab
意思就是:<navigator/>组件在使用时,涉及到以上3种跳转方式时,必须拥有 url 属性,否则就会出错。
官方文档提供的代码示例如下所示:
<!-- sample.wxml --><view class="btn-area"> <navigator url="/page/navigate/navigate?title=navigate" hover-class="navigator-hover">跳转到新页面</navigator> <navigator url="../../redirect/redirect/redirect?title=redirect" open-type="redirect" hover-class="other-navigator-hover">在当前页打开</navigator> <navigator url="/page/index/index" open-type="switchTab" hover-class="other-navigator-hover">切换 Tab</navigator> <navigator target="miniProgram" open-type="navigate" app-id="" path="" extra-data="" version="release">打开绑定的小程序</navigator></view>疑惑:完完全全就是复制官方示例代码写的,居然会报错,奇了怪了。
随后,经过反复确认:绝对不是代码的问题。
然后,就在想:是不是开发工具哪里设置的有问题。
于是,就在微信开发者工具上一顿乱找,最终居然被我发现了问题所在。
如下图所示:(惊不惊喜?意不意外?刺不刺激?)
接下来的操作就简单了,只需要把 调试基础库设置为最新版本 就好了。
微信开发者工具调试基础库的默认版本是比较低的,好像是1.9.96版本。
设置步骤: 开发者工具右上角的“详情”按钮 → 项目设置 → 调试基础库
【我怎么也没有想到,居然是这个原因导致的错误。至此,问题完美解决。】
疏忽的地方
1.在开始使用组件时,感觉这个版本号与我使用该组件没什么关系,就没有在意 最低版本 这几个字。
2.由于对开发者工具的不熟悉,导致根本就不知道还可以设置调试基础库,以及基础库版本会影响实际的功能和效果。
3.认为 直接复制粘贴官方提供的示例代码 就可以实现相应功能了,不需要考虑其他的因素。
知识拓展
公众号关联小程序的关联规则:(了解一下)
- 所有公众号都可以关联小程序。
- 一个公众号可关联
10个同主体的小程序,3个不同主体的小程序。 - 一个小程序可关联
500个公众号。 - 公众号一个月可新增关联小程序
13次,小程序一个月可新增关联500次。
关联流程:登录公众号后台 —— 小程序 —— 小程序管理 —— 添加 —— 关联小程序
打开小程序最早支持的API:wx.navigateToMiniProgram(OBJECT)
参考文档入口(点击查看)
注:此接口即将废弃,请使用 <navigator> 组件来使用此功能。
这就是我为什么选用 <navigator> 组件来实现此功能。
结束语
1.在开发者工具上调用此API 并不会真实的跳转到指定的小程序,但是开发者工具会校验本次调用跳转是否成功。
2.最后还要注意的一点是:<navigator>组件中的version属性。
- 该属性表示
要打开的小程序是什么版本的。默认值:release(正式版)。 当 target="miniProgram" 时 version 属性有效。有效值有3种,分别是: develop(开发版),trial(体验版),release(正式版)。- 仅在当前小程序为
开发版或体验版时此参数(version)有效; - 如果当前小程序是正式版,则打开的小程序必定是正式版。即参数
(version)设置无效。













