navigator
功能描述
页面链接。
- navigator 在 Skyline 下视为文本节点,只能嵌套文本节点(如 text),不能嵌套 view、button 等普通节点,如
- 新增 span 组件用于内联文本和图片,如
bar
通用属性
| 属性 | 类型 | 默认值 | 必填 | 说明 | 最低版本 |
|---|---|---|---|---|---|
| target | string | self | 否 | 在哪个目标上发生跳转,默认当前小程序 | |
| 合法值说明 self 当前小程序 miniProgram 其它小程序 | |||||
| url | string | 否 | 当前小程序内的跳转链接 | ||
| open-type | string | navigate | 否 | 跳转方式 | |
| 合法值说明最低版本 navigate 对应bl.navigateTo或bl.navigateToMiniProgram的功能 redirect 对应bl.redirectTo的功能 switchTab 对应bl.switchTab的功能 reLaunch 对应bl.reLaunch的功能 navigateBack 对应bl.navigateBack或bl.navigateBackMiniProgram(基础库 2.24.4 版本支持)的功能 exit 退出小程序,target="miniProgram"时生效 | |||||
| delta | number | 1 | 否 | 当 open-type 为 'navigateBack' 时有效,表示回退的层数 | |
| app-id | string | 否 | 当 target="miniProgram"且 open-type="navigate"时有效,要打开的小程序 appId | ||
| path | string | 否 | 当 target="miniProgram"且 open-type="navigate"时有效,打开的页面路径,如果为空则打开首页 | ||
| extra-data | object | 否 | 当 target="miniProgram"且 open-type="navigate/navigateBack"时有效,需要传递给目标小程序的数据,目标小程序可在 App.onLaunch(),App.onShow()中获取到这份数据。详情 | ||
| version | string | release | 否 | 当 target="miniProgram"且 open-type="navigate"时有效,要打开的小程序版本 | |
| 合法值说明 develop 开发版 trial 体验版 release 正式版,仅在当前小程序为开发版或体验版时此参数有效;如果当前小程序是正式版,则打开的小程序必定是正式版。 | |||||
| short-link | string | 否 | 当 target="miniProgram"时有效,当传递该参数后,可以不传 app-id 和 path。链接可以通过【小程序菜单】->【复制链接】获取。 | ||
| hover-class | string | navigator-hover | 否 | 指定点击时的样式类,当 hover-class="none"时,没有点击态效果 | |
| hover-stop-propagation | boolean | false | 否 | 指定是否阻止本节点的祖先节点出现点击态 | |
| hover-start-time | number | 50 | 否 | 按住后多久出现点击态,单位毫秒 | |
| hover-stay-time | number | 600 | 否 | 手指松开后点击态保留时间,单位毫秒 | |
| bindsuccess | string | 否 | 当 target="miniProgram"且 open-type="navigate/navigateBack"时有效时有效,跳转小程序成功 | ||
| bindfail | string | 否 | 当 target="miniProgram"且 open-type="navigate/navigateBack"时有效时有效,跳转小程序失败 | ||
| bindcomplete | string | 否 | 当 target="miniProgram"且 open-type="navigate/navigateBack"时有效时有效,跳转小程序完成 |
使用限制
- 需要用户确认跳转 从
2.3.0版本开始,在跳转至其他小程序前,将统一增加弹窗,询问是否跳转,用户确认后才可以跳转其他小程序。如果用户点击取消,则回调fail cancel。 - 从 2020 年 4 月 24 日起,跳转其他小程序将不再受数量限制,使用此功能时请注意遵守运营规范。
关于调试
Bug & Tip
tip:navigator-hover默认为{background-color: rgba(0, 0, 0, 0.1); opacity: 0.7;}, navigator 的子节点背景色应为透明色
示例代码
.navigator-hover {
color:blue;
}
.other-navigator-hover {
color:red;
}
<!-- sample.blml -->
<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>
<!-- navigator.blml -->
<view style="text-align:center"> {{title}} </view>
<view> 点击左上角返回回到之前页面 </view>
<!-- redirect.blml -->
<view style="text-align:center"> {{title}} </view>
<view> 点击左上角返回回到上级页面 </view>
Page({
onLoad: function (options) {
this.setData({
title: options.title,
});
},
});