首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

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

  • 25-02-22 03:41
  • 4555
  • 9410
blog.csdn.net

前言

页面跳转是指在浏览器中从当前页面跳转到另一个页面的操作。可以通过点击链接、输入网址、提交表单等方式实现页面跳转。

浏览记录是指记录用户在浏览器中浏览过的页面的历史记录。当用户跳转到一个新页面时,该页面会被加入浏览记录中,用户可以通过浏览器的后退按钮或者浏览历史列表来查看和访问之前浏览过的页面。

浏览器通常提供了前进和后退按钮来实现页面的跳转操作,用户可以通过点击这些按钮来在浏览记录中切换页面。另外,还可以通过浏览历史列表来查看和访问之前浏览过的页面,也可以通过在地址栏中直接输入网址来实现页面跳转。

一、页面跳转和浏览记录

1.历史记录导航

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

  1. 使用浏览器的前进和后退按钮:浏览器通常都有前进和后退按钮,可以点击前进按钮导航到上一个页面,点击后退按钮导航到上一个页面。

  2. 使用浏览器的历史记录菜单:浏览器通常都有一个历史记录菜单,可以点击菜单中的链接来导航到历史记录中的特定页面。

  3. 使用快捷键:在大多数浏览器中,可以使用快捷键来导航到Web的历史记录。例如,在Windows上,可以使用Alt + 向左箭头键来后退,使用Alt + 向右箭头键来前进。

  4. 使用浏览器的地址栏:在浏览器的地址栏中输入历史记录中的特定网址,并按下回车键,即可导航到该页面。

  5. 使用浏览器的新标签页:在浏览器的新标签页中,通常会显示最近访问的网页,可以点击其中的链接来导航到历史记录中的特定页面。

但在HarmonyOS的Web组件实现历史记录导航的方法如下:

  1. // xxx.ets
  2. import web_webview from '@ohos.web.webview';
  3. @Entry
  4. @Component
  5. struct WebComponent {
  6. webviewController: web_webview.WebviewController = new web_webview.WebviewController();
  7. build() {
  8. Column() {
  9. Button('loadData')
  10. .onClick(() => {
  11. if (this.webviewController.accessBackward()) {
  12. this.webviewController.backward();
  13. return true;
  14. }
  15. })
  16. Web({ src: 'https://www.example.com/cn/', controller: this.webviewController})
  17. }
  18. }
  19. }

在这里插入图片描述

2.页面跳转

Web页面跳转是指在一个网页上点击链接后,自动跳转到另外一个网页的过程。这个过程主要是通过超链接实现的。

1、index.ets

  1. // index.ets
  2. import web_webview from '@ohos.web.webview';
  3. import router from '@ohos.router';
  4. @Entry
  5. @Component
  6. struct WebComponent {
  7. webviewController: web_webview.WebviewController = new web_webview.WebviewController();
  8. build() {
  9. Column() {
  10. Web({ src: $rawfile('local.html'), controller: this.webviewController })
  11. .onUrlLoadIntercept((event) => {
  12. let url: string = event.data as string;
  13. if (url.indexOf('native://') === 0) {
  14. // 跳转其他界面
  15. router.pushUrl({ url:url.substring(9) })
  16. return true;
  17. }
  18. return false;
  19. })
  20. }
  21. }
  22. }

2、前端页面代码

  1. html>
  2. <html>
  3. <body>
  4. <div>
  5. <a href="native://pages/ProfilePage">个人中心a>
  6. div>
  7. body>
  8. html>

3、ProfilePage.ets

  1. @Entry
  2. @Component
  3. struct ProfilePage {
  4. @State message: string = 'Hello World';
  5. build() {
  6. Column() {
  7. Text(this.message)
  8. .fontSize(20)
  9. }
  10. }
  11. }

在这里插入图片描述

3.跨应用跳转

跨应用跳转是指从一个应用程序跳转到另一个应用程序。这种跳转通常通过链接或特定的 API 调用实现。例如,你可以在一个应用程序中点击一个链接,然后跳转到另一个应用程序中的指定页面。跨应用跳转可以提供更好的用户体验和无缝的应用集成。

  1. // xxx.ets
  2. import web_webview from '@ohos.web.webview';
  3. import call from '@ohos.telephony.call';
  4. @Entry
  5. @Component
  6. struct WebComponent {
  7. webviewController: web_webview.WebviewController = new web_webview.WebviewController();
  8. build() {
  9. Column() {
  10. Web({ src: $rawfile('local.html'), controller: this.webviewController})
  11. .onUrlLoadIntercept((event) => {
  12. let url: string = event.data as string;
  13. // 判断链接是否为拨号链接
  14. if (url.indexOf('tel://') === 0) {
  15. // 跳转拨号界面
  16. call.makeCall(url.substring(6), (err) => {
  17. if (!err) {
  18. console.info('make call succeeded.');
  19. } else {
  20. console.info('make call fail, err is:' + JSON.stringify(err));
  21. }
  22. });
  23. return true;
  24. }
  25. return false;
  26. })
  27. }
  28. }
  29. }
  1. html>
  2. <html>
  3. <body>
  4. <div>
  5. <a href="tel://xxx xxxx xxx">拨打电话a>
  6. div>
  7. body>
  8. html>

在这里插入图片描述

 ?写在最后

  • 如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙:
  • 点赞,转发,有你们的 『点赞和评论』,才是我创造的动力。
  • 关注小编,同时可以期待后续文章ing?,不定期分享原创知识。
  • 想要获取更多完整鸿蒙最新VIP学习资料,请点击→全套鸿蒙HarmonyOS学习资料
  • 或者关注小编后私信回复【666】也可获取资料哦~~

最新鸿蒙Next全套学习资料请扫码
微信名片
注:本文转载自blog.csdn.net的蜀道山QAQ的文章"https://blog.csdn.net/shudaoshanQAQ/article/details/135490945"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top