navigator

基础库 1.0.0 开始支持,低版本需做兼容处理

页面链接。

属性类型默认值必填说明最低版本
targetstringself在哪个目标上发生跳转,默认当前小程序2.0.7
urlstring当前小程序内的跳转链接1.0.0
open-typestringnavigate跳转方式1.0.0
deltanumber1当 open-type 为 'navigateBack' 时有效,表示回退的层数1.0.0
app-idstringtarget="miniProgram"时有效,要打开的小程序 appId2.0.7
pathstringtarget="miniProgram"时有效,打开的页面路径,如果为空则打开首页2.0.7
extra-dataobjecttarget="miniProgram"时有效,需要传递给目标小程序的数据,目标小程序可在 App.onLaunch()App.onShow() 中获取到这份数据。详情2.0.7
versionstringreleasetarget="miniProgram"时有效,要打开的小程序版本2.0.7
hover-classstringnavigator-hover指定点击时的样式类,当hover-class="none"时,没有点击态效果1.0.0
hover-stop-propagationbooleanfalse指定是否阻止本节点的祖先节点出现点击态1.5.0
hover-start-timenumber50按住后多久出现点击态,单位毫秒1.0.0
hover-stay-timenumber600手指松开后点击态保留时间,单位毫秒1.0.0
bindsuccessstringtarget="miniProgram"时有效,跳转小程序成功2.0.7
bindfailstringtarget="miniProgram"时有效,跳转小程序失败2.0.7
bindcompletestringtarget="miniProgram"时有效,跳转小程序完成2.0.7

target 的合法值

说明最低版本
self当前小程序
miniProgram其它小程序

open-type 的合法值

说明最低版本
navigate对应 wx.navigateTowx.navigateToMiniProgram 的功能
redirect对应 wx.redirectTo 的功能
switchTab对应 wx.switchTab 的功能
reLaunch对应 wx.reLaunch 的功能1.1.0
navigateBack对应 wx.navigateBack 的功能1.1.0
exit退出小程序,target="miniProgram"时生效2.1.0

version 的合法值

说明最低版本
develop开发版
trial体验版
release正式版,仅在当前小程序为开发版或体验版时此参数有效;如果当前小程序是正式版,则打开的小程序必定是正式版。

使用限制

  • 需要用户确认跳转从 2.3.0 版本开始,在跳转至其他小程序前,将统一增加弹窗,询问是否跳转,用户确认后才可以跳转其他小程序。如果用户点击取消,则回调 fail cancel
  • 每个小程序可跳转的其他小程序数量限制为不超过 10 个从 2.4.0 版本以及指定日期(具体待定)开始,开发者提交新版小程序代码时,如使用了跳转其他小程序功能,则需要在代码配置中声明将要跳转的小程序名单,限定不超过 10 个,否则将无法通过审核。该名单可在发布新版时更新,不支持动态修改。配置方法详见 配置。调用此接口时,所跳转的 appId 必须在配置列表中,否则回调 fail appId "${appId}" is not in navigateToMiniProgramAppIdList

关于调试

  • 在开发者工具上调用此 API 并不会真实的跳转到另外的小程序,但是开发者工具会校验本次调用跳转是否成功。详情
  • 开发者工具上支持被跳转的小程序处理接收参数的调试。详情

Bug & Tip

  • tipnavigator-hover 默认为 {background-color: rgba(0, 0, 0, 0.1); opacity: 0.7;}, navigator 的子节点背景色应为透明色

示例代码

在开发者工具中预览效果

  1. .navigator-hover {
  2. color:blue;
  3. }
  4. .other-navigator-hover {
  5. color:red;
  6. }
  1. <!-- sample.wxml -->
  2. <view class="btn-area">
  3. <navigator url="/page/navigate/navigate?title=navigate" hover-class="navigator-hover">跳转到新页面</navigator>
  4. <navigator url="../../redirect/redirect/redirect?title=redirect" open-type="redirect" hover-class="other-navigator-hover">在当前页打开</navigator>
  5. <navigator url="/page/index/index" open-type="switchTab" hover-class="other-navigator-hover">切换 Tab</navigator>
  6. <navigator target="miniProgram" open-type="navigate" app-id="" path="" extra-data="" version="release">打开绑定的小程序</navigator>
  7. </view>
  1. <!-- navigator.wxml -->
  2. <view style="text-align:center"> {{title}} </view>
  3. <view> 点击左上角返回回到之前页面 </view>
  1. <!-- redirect.wxml -->
  2. <view style="text-align:center"> {{title}} </view>
  3. <view> 点击左上角返回回到上级页面 </view>
  1. Page({
  2. onLoad: function(options) {
  3. this.setData({
  4. title: options.title
  5. })
  6. }
  7. })