HarmonyOS鸿蒙Next ArkWeb如何访问并共用应用内自定义的一些信息?

HarmonyOS鸿蒙Next ArkWeb如何访问并共用应用内自定义的一些信息? 我们的应用内接入了 ArkWeb 以供打开我司内部的一些 url.

我们的web 网而需要获取系统以及本 HarmonyOS NEXT 应用的一些基本信息.

比如打开的浏览器内核及版本和设备名称, 本 harmonyOS NEXT应用的名称, 版本, 内核及平台, 诸如手机/平板/桌面等.

请问一下在 HarmonyOS NEXT 原生应用中如何与 ArkWeb 内的网页共通定义一级协议可供网页获取这些自定义的信息?

3 回复

参考https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/web-app-page-data-channel-V5,可以在应用侧通过createWebMessagePorts()方法创建消息端口,再把其中一个端口通过postMessage()接口发送到前端页面,实现数据/消息传输

更多关于HarmonyOS鸿蒙Next ArkWeb如何访问并共用应用内自定义的一些信息?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,ArkWeb可以通过ArkTS的@ohos.web.webview模块访问并共用应用内自定义的信息。具体步骤如下:

  1. 定义共享数据:在应用内定义一个全局对象或使用AppStorage来存储需要共享的自定义信息。

  2. 注入JavaScript接口:通过WebviewControllerregisterJavaScriptProxy方法,将ArkTS中的对象或方法注入到WebView中,使得Web页面可以调用这些方法或访问这些数据。

  3. 在Web页面中调用:在Web页面中通过JavaScript调用注入的接口,获取或操作应用内的自定义信息。

例如,定义一个ArkTS对象并注入到WebView中:

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

// 定义共享对象
class SharedData {
  getCustomInfo(): string {
    return "Custom Info";
  }
}

// 获取WebviewController
let webviewController: webview.WebviewController = webview.WebviewController.create();

// 注入共享对象
webviewController.registerJavaScriptProxy(new SharedData(), "sharedData", ["getCustomInfo"]);

在Web页面中调用注入的接口:

// 调用注入的接口
let customInfo = sharedData.getCustomInfo();
console.log(customInfo); // 输出: "Custom Info"

通过这种方式,ArkWeb可以访问并共用应用内自定义的信息。

在HarmonyOS鸿蒙Next中,ArkWeb可以通过使用WebMessagePortWebMessageChannel实现与应用的通信。首先,在应用中创建WebMessageChannel,并通过postMessage将消息发送到ArkWeb页面。ArkWeb页面通过监听message事件接收消息,并可通过postMessage将响应发送回应用。这种方式可以实现应用内自定义信息的访问与共享,确保数据的安全和高效传输。

回到顶部