HarmonyOS鸿蒙Next中如何阻止某些url在ArkWeb中加载?

HarmonyOS鸿蒙Next中如何阻止某些url在ArkWeb中加载? 我们的应用中接入了 ArkWeb. 用于加载应用内提供了 url.

但是我们大前端定义了一套短链接. 比如 ab.c 此类的 host, 用于打开应用的原生页面.

所以想让 android/iOS/HarmonyOS NEXT在加载到此类短链接的时候, 根据传入的 host 后面的参数不同, 用于打开 native 原生界面.

请问判断出短链然后打开原生界面而不再依赖于 ArkWeb 加载, 这个场景应用通过 ArkWeb 的什么回调方式来实现比较好?

请问官方有什么使用示例吗? 有什么文档可以参考吗?

3 回复

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-web-V5#onloadintercept10

onLoadIntercept(callback: Callback<OnLoadInterceptEvent, boolean>)

当Web组件加载url之前触发该回调,用于判断是否阻止此次访问。默认允许加载。

#HarmonyOS最强问答官#

更多关于HarmonyOS鸿蒙Next中如何阻止某些url在ArkWeb中加载?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,阻止某些URL在ArkWeb中加载可以通过使用ArkWeb组件的onUrlLoadIntercept回调函数实现。该回调函数允许你在URL加载前进行拦截,并根据条件决定是否允许加载。你可以在回调函数中检查URL,如果匹配到需要阻止的URL,返回false即可阻止加载。以下是一个示例代码:

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

let webController: webview.WebviewController = new webview.WebviewController();
webController.onUrlLoadIntercept((url: string) => {
    if (url.includes("blocked-domain.com")) {
        return false; // 阻止加载
    }
    return true; // 允许加载
});

通过这种方式,你可以灵活地控制哪些URL可以在ArkWeb中加载。

在HarmonyOS鸿蒙Next中,可以通过ArkWeb的onInterceptRequest回调来阻止特定URL的加载。在回调中检查请求的URL,如果匹配到需要阻止的URL,则返回true以拦截该请求。示例代码如下:

webController.onInterceptRequest((event) => {
  const url = event.request.url;
  if (url.includes("blocked-domain.com")) {
    return true; // 拦截请求
  }
  return false; // 允许请求
};

通过这种方式,可以灵活控制ArkWeb中加载的URL。

回到顶部