uni-app 页面应用内跳转与应用外跳转的实现方式

uni-app 页面应用内跳转与应用外跳转的实现方式

我们在用 uni-app 开发前端应用时,页面跳转是必不可少的。页面跳转主要包含应用内跳转(站内跳转)和应用外跳转(外部跳转)。下面我们一起来看看具体实现方式。

站内跳转

站内跳转主要有两种实现方式,可以通过组件和 API 接口方式实现。

采用 navigator 组件

  1. <template>
  2. <view>
  3. <navigator url="/pages/view/view?id=1" open-type="navigate">
  4. <button type="default">跳转到新页面</button>
  5. </navigator>
  6. </view>
  7. </template>

采用 API 接口

  1. <template>
  2. <view>
  3. <button type="default" @tap="toView">跳转到新页面</button>
  4. </view>
  5. </template>
  6. <script>
  7. export default {
  8. methods: {
  9. toView () {
  10. uni.navigateTo({
  11. url: '/pages/view/view?id=1'
  12. })
  13. }
  14. }
  15. }
  16. </script>

open-type 主要有效值与 API 的对应关系

对应 API说明
navigateuni.navigateTo保留当前页面,跳转到应用内的某个页面
redirectuni.redirectTo关闭当前页面,跳转到应用内的某个页面
switchTabuni.switchTab跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面
reLaunchuni.reLaunch关闭所有页面,打开到应用内的某个页面
navigateBackuni.navigateBack关闭当前页面,返回上一页面或多级页面

更多规则可查看:官方文档

目标页面参数接收:

  1. <script>
  2. export default {
  3. onLoad: function (option) { // option为object类型,会序列化上个页面传递的参数
  4. console.log(option.id) // 打印出上个页面传递的参数。
  5. }
  6. }
  7. </script>

外部跳转

外部跳转直接可以使用 web-view 组件,会自动铺满整个页面。

步骤1:在项目根路径下的 pages 目录下,新建一个页面,用于专门放置外部网站

  1. <template>
  2. <web-view :src="url"></web-view>
  3. </template>
  4. <script>
  5. export default {
  6. data() {
  7. return {
  8. url: null //要打开的外部链接
  9. }
  10. },
  11. onLoad: function (option) {
  12. this.url = option.url
  13. }
  14. }
  15. </script>

步骤2:配置 pages.json

  1. {
  2. "pages": [
  3. ……,
  4. {
  5. "path": "pages/web-view/web-view",
  6. "style": {
  7. "navigationBarTitleText": "页面标题"
  8. }
  9. }
  10. }
  11. ]
  12. }

步骤3:在需要跳转的页面,通过 navigator 组件或 API 进行跳转

  1. <template>
  2. <view>
  3. <navigator url="/pages/web-view/web-view?url=https://www.baidu.com/">访问百度</navigator>
  4. </view>
  5. </template>
声明:本站部分文章或资源,整理于网络或由网友提供,主要用于知识性分享与学习用途。若相关内容侵犯了原著者的合法权益,请联系处理。
Uniapp

uniapp切换页面,uniapp跳转到外部链接

2022-11-29 16:16:45

Uniapp

uni-app 条形码(一维码)/二维码生成实现

2022-11-29 17:09:34

0 条回复 A文章作者 M管理员
欢迎您,新朋友,感谢参与互动!
    暂无讨论,说说你的看法吧