当前位置:   article > 正文

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

鸿蒙跳转浏览器

前言

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

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

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

一、页面跳转和浏览记录

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. <!-- route.html -->
  2. <!DOCTYPE html>
  3. <html>
  4. <body>
  5. <div>
  6. <a href="native://pages/ProfilePage">个人中心</a>
  7. </div>
  8. </body>
  9. </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. <!-- call.html -->
  2. <!DOCTYPE html>
  3. <html>
  4. <body>
  5. <div>
  6. <a href="tel://xxx xxxx xxx">拨打电话</a>
  7. </div>
  8. </body>
  9. </html>

在这里插入图片描述

 
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/296899

推荐阅读
相关标签