羊蹓狼 发表于 2024-9-16 07:52:23

鸿蒙HarmonyOS实战-Web组件(页面跳转和浏览记录)_鸿蒙跳转浏览器

媒介

页面跳转是指在浏览器中从当前页面跳转到另一个页面的操作。可以通过点击链接、输入网址、提交表单等方式实现页面跳转。
浏览记录是指记录用户在浏览器中浏览过的页面的历史记录。当用户跳转到一个新页面时,该页面会被加入浏览记录中,用户可以通过浏览器的后退按钮或者浏览历史列表来查看和访问之前浏览过的页面。
浏览器通常提供了前进和后退按钮来实现页面的跳转操作,用户可以通过点击这些按钮来在浏览记录中切换页面。另外,还可以通过浏览历史列表来查看和访问之前浏览过的页面,也可以通过在所在栏中直接输入网址来实现页面跳转。
一、页面跳转和浏览记录

1.历史记录导航

在浏览器中,可以利用以下方法来导航到Web的历史记录:

[*]利用浏览器的前进和后退按钮:浏览器通常都有前进和后退按钮,可以点击前进按钮导航到上一个页面,点击后退按钮导航到上一个页面。
[*]利用浏览器的历史记录菜单:浏览器通常都有一个历史记录菜单,可以点击菜单中的链接来导航到历史记录中的特定页面。
[*]利用快捷键:在大多数浏览器中,可以利用快捷键来导航到Web的历史记录。例如,在Windows上,可以利用Alt + 向左箭头键来后退,利用Alt + 向右箭头键来前进。
[*]利用浏览器的所在栏:在浏览器的所在栏中输入历史记录中的特定网址,并按下回车键,即可导航到该页面。
[*]利用浏览器的新标签页:在浏览器的新标签页中,通常会显示近来访问的网页,可以点击其中的链接来导航到历史记录中的特定页面。
但在HarmonyOS的Web组件实现历史记录导航的方法如下:
// xxx.ets
import web_webview from '@ohos.web.webview';

@Entry
@Component
struct WebComponent {
webviewController: web_webview.WebviewController = new web_webview.WebviewController();
build() {
    Column() {
      Button('loadData')
      .onClick(() => {
          if (this.webviewController.accessBackward()) {
            this.webviewController.backward();
            return true;
          }
      })
      Web({ src: 'https://www.example.com/cn/', controller: this.webviewController})
    }
}
}

https://i-blog.csdnimg.cn/blog_migrate/8336b28e31ba865280a85027439d2978.png
2.页面跳转

Web页面跳转是指在一个网页上点击链接后,主动跳转到另外一个网页的过程。这个过程紧张是通过超链接实现的。
1、index.ets
// index.ets
import web_webview from '@ohos.web.webview';
import router from '@ohos.router';
@Entry
@Component
struct WebComponent {
webviewController: web_webview.WebviewController = new web_webview.WebviewController();

build() {
    Column() {
      Web({ src: $rawfile('local.html'), controller: this.webviewController })
      .onUrlLoadIntercept((event) => {
          let url: string = event.data as string;
          if (url.indexOf('native://') === 0) {
            // 跳转其他界面
            router.pushUrl({ url:url.substring(9) })
            return true;
          }
          return false;
      })
    }
}
}

2、前端页面代码
<!-- route.html -->
<!DOCTYPE html>
<html>
<body>
<div>
    <a href="native://pages/ProfilePage">个人中心</a>
</div>
</body>
</html>

3、ProfilePage.ets
@Entry
@Component
struct ProfilePage {
@State message: string = 'Hello World';

build() {
    Column() {
      Text(this.message)
      .fontSize(20)
    }
}
}

https://i-blog.csdnimg.cn/blog_migrate/c86c31c3b6dac882bfd9a9d08bc88aea.png
3.跨应用跳转

跨应用跳转是指从一个应用步伐跳转到另一个应用步伐。这种跳转通常通过链接或特定的 API 调用实现。例如,你可以在一个应用步伐中点击一个链接,然后跳转到另一个应用步伐中的指定页面。跨应用跳转可以提供更好的用户体验和无缝的应用集成。
// xxx.ets
import web_webview from '@ohos.web.webview';
import call from '@ohos.telephony.call';

@Entry


**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**

**深知大多数HarmonyOS鸿蒙开发工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**

**因此收集整理了一份《2024年HarmonyOS鸿蒙开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**
!(https://img-blog.csdnimg.cn/img_convert/08da5a44a078661355ce8bff4101e251.png)
!(https://img-blog.csdnimg.cn/img_convert/0c036ca7944c752b0b631c53244b905c.png)
!(https://img-blog.csdnimg.cn/img_convert/362bf95fccae5fe28644642f74d73064.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上HarmonyOS鸿蒙开发知识点,真正体系化!**

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新**

**如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注鸿蒙获取)**
!(https://img-blog.csdnimg.cn/img_convert/76e7f331d940c14c978afcc29ddcb28c.png)

**一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

204888 (备注鸿蒙获取)**
[外链图片转存中...(img-mHKgwgUO-1712919819982)]

**一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 鸿蒙HarmonyOS实战-Web组件(页面跳转和浏览记录)_鸿蒙跳转浏览器