【HarmonyOS NEXT】WebView是否支持JSBridge注入和通信

【关键字】

WebView / JSBridge / 注入 / 通信 / H5 / HTML / javaScriptProxy

【问题描述】

WebView是否支持JSBridge注入和通信?

【解决方案】

JSBridge是一种JavaScript与Web客户端之间的通信机制。通过JSBridge,可以在WebView中通过JavaScript代码调用客户端提供的功能,也可以从客户端中调用JavaScript函数。

目前,HarmonyOS支持WebView的JSBridge注入和通信,详细信息请参见:https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-webview-0000001821001193#ZH-CN_TOPIC_0000001821001193__registerjavascriptproxy

通信方式有以下三种。

  • ArkTS调用H5:通过runJavaScript接口(对应Android的evaluateJavaScript接口)调用HTML中的代码,异步执行JS脚本。

  • H5调用ArkTS:通过javaScriptProxy接口(对应Android的addJavascriptInterface接口),将对象注册到HTML的window对象上。

  • ArkTS与H5双向通信:通过createWebMessagePorts、PostMessage接口(对应Android的WebMessagePort、postWebMessage接口),创建一个消息通道[port1,port2]与JS进行通信。

关于ArkWeb的更多信息请参见:https://developer.huawei.com/consumer/cn/doc/harmonyos-faqs/faqs-arkweb-kit-0000001816292321

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
是的,Android WebView 支持 Fetch API。WebView 是 Android 平台上的一个组件,用于在应用程序中显示网页内容。它是基于 Chromium 的,因此支持许多现代的 web 标准和 API,包括 Fetch API。 您可以在 WebView 中使用 Fetch API 发送网络请求,获取数据并进行处理。以下是一个简单的示例: ```java // 创建 WebView 实例 WebView webView = new WebView(context); // 启用 JavaScript WebSettings webSettings = webView.getSettings(); webSettings.setJavaScriptEnabled(true); // 在 WebView 中加载网页 webView.loadUrl("https://www.example.com"); // 设置 WebViewWebViewClient webView.setWebViewClient(new WebViewClient() { @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); // 在页面加载完成后,使用 Fetch API 发送请求 view.evaluateJavascript("fetch('https://api.example.com/data')" + ".then(response => response.json())" + ".then(data => {" + " // 处理返回的数据" + " console.log(data);" + "})" + ".catch(error => {" + " // 处理错误" + " console.error(error);" + "});", null); } }); ``` 在上面的示例中,我们创建了一个 WebView 实例,并启用了 JavaScript 功能。然后,我们加载了一个网页,并在页面加载完成后使用 `evaluateJavascript` 方法来执行 JavaScript 代码,其中包括使用 Fetch API 发送请求和处理返回的数据的逻辑。 请注意,为了使用 Fetch API,您需要确保在 WebView 中启用了 JavaScript。另外,您还可以通过设置 WebViewClient 来处理页面加载和其他事件。这只是一个简单的示例,您可以根据您的具体需求进行自定义和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值