HarmonyOS 鸿蒙Next:h5和原生交互,已经获取到了h5传来的值,怎么通知default struct

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

HarmonyOS 鸿蒙Next:h5和原生交互,已经获取到了h5传来的值,怎么通知default struct

我创建了一个AndroidBridge的class,然后里面有个native_back_webview方法,给前端调用,前端传过来比如data是个boolean,我也监听到了,然后我怎么给自己的default struct,让他获取?如图1是获取到的值,比如为false,图二是build里注册这几个方法,我怎么在图三build比如title_text我就想获取这个native_back_webview方法的boolean的值,我怎么获取?


更多关于HarmonyOS 鸿蒙Next:h5和原生交互,已经获取到了h5传来的值,怎么通知default struct的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

请参考 应用全局的UI状态存储
AppStorage:应用全局的UI状态存储-管理应用拥有的状态-状态管理(V1稳定版)-状态管理-学习ArkTS语言-基础入门 - 华为HarmonyOS开发者

或者

用[@State](/user/State)装饰器 定义一个对象, 通过Bridge的构造函数传入,在前端修改

定义对象

 class DemoItem {
  public tel: string = '';
}

export default DemoItem; // 页面page代码段 @State demo: DemoItem = new DemoItem(); private jsBridge: JSBridge = new JSBridge(this.webController, this.demo); // jsBridge代码段 constructor(controller: WebView.WebviewController, demo: DemoItem) { this.controller = controller; this.demo = demo; } // jsBridge代码段 修改还 demo对象里面的值 this.demo.tel = ‘xxxx’; // 页面page可以直接通过 上面定义的demo 对象获取 tel的值 console.log(this.demo.tel)

更多关于HarmonyOS 鸿蒙Next:h5和原生交互,已经获取到了h5传来的值,怎么通知default struct的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next系统中,若你已经成功从H5页面获取到传递的值,并希望将这个值通知给默认的struct(通常指的是C/C++中的结构体),可以通过以下几种方式实现:

  1. 全局变量:如果H5和原生代码运行在同一个进程内,可以使用全局变量来存储H5传递的值,然后在需要的地方访问这个全局变量。注意线程安全和内存管理。

  2. 消息队列:使用鸿蒙系统提供的消息队列机制,将H5传递的值封装成消息,发送到原生代码中的消息处理函数。这种方式适合异步通信。

  3. 回调机制:在H5与原生交互的接口中,设置回调函数。当H5传递值后,触发回调函数,在回调函数中处理这个值,并更新到default struct中。

  4. 数据绑定:如果使用的是鸿蒙的ArkUI框架,可以通过数据绑定机制,将H5传递的值与原生代码中的struct进行绑定,实现自动更新。

选择哪种方式取决于你的具体需求和系统架构。在实现过程中,确保遵循鸿蒙系统的开发规范和安全要求。

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

回到顶部