HarmonyOS 鸿蒙Next webview 同层渲染组件如何拿到当前的网页url?

发布于 1周前 作者 eggper 来自 鸿蒙OS

HarmonyOS 鸿蒙Next webview 同层渲染组件如何拿到当前的网页url?

webview中使用同层渲染自定义组件(如image), 前端传入的路径是’./assets/xxx.png’,  需要拿到当前的url 拼接相对路径成 http://xxx/xxx/assets/xxx.png  

现在求助 webview 同层渲染自定义组件如何获取当前网页的url?

3 回复
在回调中使用this.controller.getUrl()获取当前网址,拼接地址
同层渲染组件可以通过如下两种方式获取当前加载网页的url后拼接地址
1. webController get url (优先)
2. NativeEmbedDataInfo.info.url (文档不明确)
优先使用第一种

在HarmonyOS鸿蒙Next系统中,通过webview同层渲染组件获取当前网页的URL,可以通过WebviewControllergetUrl方法实现。以下是具体步骤:

  1. 确保Webview组件已正确初始化

    • 导入web_webview模块,并创建WebviewController实例。
    • 使用Web组件并指定src属性和controller
  2. 获取当前网页URL

    • 在需要获取URL的地方,调用WebviewController实例的getUrl方法。
    • 该方法会返回当前加载的网页URL,可通过日志等方式进行查看。
  3. 错误处理

    • 调用getUrl方法时,应捕获可能的异常,并进行相应处理。
  4. 示例代码

import web_webview from '@ohos.web.webview';

@Entry
@Component
struct WebComponent {
  controller: web_webview.WebviewController = new web_webview.WebviewController();

  build() {
    // ...Web组件配置...

    Button('获取URL')
      .onClick(() => {
        try {
          let url = this.controller.getUrl();
          console.log("当前网页URL: " + url);
        } catch (error) {
          console.error("获取URL失败: " + error.message);
        }
      });
  }
}

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部