鸿蒙开发IDE有以下3个软件推荐:
- DevEco Studio:鸿蒙开发的集成开发环境(IDE),集成了鸿蒙应用开发所需的各种工具和功能,包括代码编辑器、调试器、模拟器等。
- HarmonyOS SDK:鸿蒙软件开发工具包(SDK),提供了开发鸿蒙应用所需的各种API、开发工具和模拟器等,可以帮助开发者快速构建鸿蒙应用。
- Distributed Data Management Kit:分布式数据管理开发工具包,提供了一系列用于开发鸿蒙分布式应用的API、开发工具和示例代码,帮助开发者实现分布式数据管理。
- HarmonyOS Connect SDK:鸿蒙连接开发工具包,提供了一系列用于开发鸿蒙设备连接应用的API、开发工具和示例代码,帮助开发者实现设备之间的连接和通信。
适用于:Openharmony 3.2 Beta5 API 9
使用Web组件加载本地网页时,如何在本地网页中调用ArkTS中的函数?
解决措施
准备一个html文件,例如:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <h1>标题</h1> <h5 id="h5"></h5> <h5 id = "h6"></h5> <button onclick="handleFromH5">调用Arkts的方法</button> <script type="text/javascript"> function handleFromH5(){ let result = window.objName.test(); document.getElementById('h6').innerHTML = result; } </script> </body> </html>
在ArkTs中使用JavaScriptProxy方法将ArkTs里的对象注册到H5的window对象中,然后在h5中使用window对象调用该方法。比如下面例子,在ArkTs中将testObj这个对象以别名objName注册到h5的window对象上,在上面的h5中就可以使用window.objName去访问这个对象。
// xxx.ets import web_webview from '@ohos.web.webview' @Entry @Component struct Index { @State message: string = 'Hello World' controller: web_webview.WebviewController = new web_webview.WebviewController() testObj = { test: (data1, data2, data3) => { console.log("data1:" + data1); console.log("data2:" + data2); console.log("data3:" + data3); return "AceString"; }, toString: () => { console.log('toString' + "interface instead."); } } build() { Row() { Column() { Web({ src:$rawfile('index.html'), controller:this.controller }) .javaScriptAccess(true) .javaScriptProxy({ object: this.testObj, name: "objName", methodList: ["test", "toString"], controller: this.controller, }) } .width('100%') } .height('100%') } }
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。