跳转到内容

OHOS

OHOS 由 webview_all_ohos 1.2.0 提供,底层使用 ArkWeb。

Controller OhosWebViewController
Widget OhosWebViewWidget
Delegate OhosNavigationDelegate
Cookie manager OhosWebViewCookieManager
引擎 ArkWeb
最低目标 OHOS API 12+
final params = OhosWebViewControllerCreationParams(
domStorageEnabled: true,
javaScriptCanOpenWindowsAutomatically: true,
supportMultipleWindows: true,
loadWithOverviewMode: true,
useWideViewPort: true,
allowFileAccess: true,
mediaPlaybackRequiresUserGesture: false,
supportZoom: true,
textZoom: 100,
);
API 作用
OhosWebViewController.enableDebugging 全局启用 ArkWeb 调试。
webViewIdentifier 原生 WebView 实例 ID。
setAllowFullScreenRotate 控制全屏旋转。
setDomStorageEnabled 控制 DOM storage。
setSupportMultipleWindows 控制多窗口。
setLoadWithOverviewMode / setUseWideViewPort 视口相关设置。
setDisplayZoomControls / setBuiltInZoomControls 缩放控件。
setAllowFileAccess file access。
setOnShowFileSelector 文件选择。
setGeolocationPermissionsPromptCallbacks 定位提示。
setCustomWidgetCallbacks 全屏 custom view。
请求 支持
GET 无 headers 支持。
GET 自定义 headers 支持。
POST 无自定义 headers 支持。
POST 自定义 headers 不支持,抛 UnsupportedError

ArkWeb postUrl 只接收 URL 和 body,不接收 headers,因此库明确失败。

OHOS 支持 camera、microphone,并扩展 midiSysexprotectedMediaId

await (WebViewCookieManager().platform as OhosWebViewCookieManager)
.setAcceptThirdPartyCookies(
controller.platform as OhosWebViewController,
true,
);
  • WebView 权限批准不等于系统权限,宿主应用仍需声明并获取权限。
  • ArkWeb 行为可能随 HarmonyOS/OpenHarmony 版本变化,尤其是媒体、文件选择和权限。