- navigator
- 使用限制
- 需要用户确认跳转
- 每个小程序可跳转的其他小程序数量限制为不超过 10 个
- 关于调试
navigator
页面链接。
| 属性名 | 类型 | 默认值 | 说明 | 最低版本 |
|---|---|---|---|---|
| target | String | self | 在哪个目标上发生跳转,默认当前小程序,可选值self/miniProgram | |
| url | String | 当前小程序内的跳转链接 | ||
| open-type | String | navigate | 跳转方式 | |
| delta | Number | 当 open-type 为 'navigateBack' 时有效,表示回退的层数 | ||
| app-id | String | 当target="miniProgram"时有效,要打开的小程序 appId | ||
| path | String | 当target="miniProgram"时有效,打开的页面路径,如果为空则打开首页 | ||
| extra-data | Object | 当target="miniProgram"时有效,需要传递给目标小程序的数据,目标小程序可在 App.onLaunch(),App.onShow() 中获取到这份数据。详情 | ||
| version | version | release | 当target="miniProgram"时有效,要打开的小程序版本,有效值 develop(开发版),trial(体验版),release(正式版),仅在当前小程序为开发版或体验版时此参数有效;如果当前小程序是正式版,则打开的小程序必定是正式版。 | |
| 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"时有效,跳转小程序成功 | ||
| bindfail | String | 当target="miniProgram"时有效,跳转小程序失败 | ||
| bindcomplete | String | 当target="miniProgram"时有效,跳转小程序完成 | ||
| aria-label | String | 无障碍访问,(属性)元素的额外描述 |
open-type 有效值:
| 值 | 说明 | 最低版本 |
|---|---|---|
| navigate | 对应 qq.navigateTo 或 qq.navigateToMiniProgram 的功能 | |
| redirect | 对应 qq.redirectTo 的功能 | |
| switchTab | 对应 qq.switchTab 的功能 | |
| reLaunch | 对应 qq.reLaunch 的功能 | |
| navigateBack | 对应 qq.navigateBack 的功能 | |
| exit | 退出小程序,target="miniProgram"时生效 | 1.4.7 |
使用限制
需要用户确认跳转
在跳转至其他小程序前,将统一增加弹窗,询问是否跳转,用户确认后才可以跳转其他小程序。如果用户点击取消,则回调 fail cancel。
每个小程序可跳转的其他小程序数量限制为不超过 10 个
开发者提交新版小程序代码时,如使用了跳转其他小程序功能,则需要在代码配置中声明将要跳转的小程序名单,限定不超过 10 个,否则将无法通过审核。该名单可在发布新版时更新,不支持动态修改。配置方法详见 配置。调用此接口时,所跳转的 appId 必须在配置列表中,否则回调 fail appId "${appId}" is not in navigateToMiniProgramAppIdList。
关于调试
- 在开发者工具上调用此 API 并不会真实的跳转到另外的小程序,但是开发者工具会校验本次调用跳转是否成功。详情
- 开发者工具上支持被跳转的小程序处理接收参数的调试。详情注:
navigator-hover默认为{background-color: rgba(0, 0, 0, 0.1); opacity: 0.7;},<navigator>的子节点背景色应为透明色
示例代码:
/** qss **//** 修改默认的navigator点击态 **/.navigator-hover {color: blue;}/** 自定义其他点击态样式类 **/.other-navigator-hover {color: red;}
<!-- sample.qml --><view class="btn-area"><navigatorurl="/page/navigate/navigate?title=navigate"hover-class="navigator-hover">跳转到新页面</navigator><navigatorurl="../../redirect/redirect/redirect?title=redirect"open-type="redirect"hover-class="other-navigator-hover">在当前页打开</navigator><navigatorurl="/page/index/index"open-type="switchTab"hover-class="other-navigator-hover">切换 Tab</navigator><navigatortarget="miniProgram"open-type="navigate"app-id=""path=""extra-data=""version="release">打开绑定的小程序</navigator></view>
<!-- navigator.qml --><view style="text-align:center">{{title}}</view><view>点击左上角返回回到之前页面</view>
<!-- redirect.qml --><view style="text-align:center">{{title}}</view><view>点击左上角返回回到上级页面</view>
// redirect.js navigator.jsPage({onLoad(options) {this.setData({title: options.title})}})
