相关问题
#鸿蒙通关秘籍#如何通过应用侧调用前端页面的JavaScript函数?
1161浏览 • 1回复 待解决
HarmonyOS 前端页面调用应用侧函数的时候获取不到
724浏览 • 1回复 待解决
ArkWeb:前端页面调用应用侧函数是同步还是异步?
1403浏览 • 1回复 待解决
web组件中应用侧调用前端页面函数无法传递参数
1480浏览 • 1回复 待解决
ArkTS web组件前端页面调用应用侧函数如何设置多个javaScriptProxy
4141浏览 • 0回复 待解决
HarmonyOS 前端页面调用应用侧函数javascript可运行demo(javaScriptProxy)
1070浏览 • 1回复 待解决
HarmonyOS 前端页面调用应用侧函数registerJavaScriptProxy没有挂载在window上
1212浏览 • 1回复 待解决
前端页面调用应用侧函数时,提示参数类型不支持
1435浏览 • 1回复 待解决
HarmonyOS 如何在前端页面执行应用侧class类方法中 打开加载另外一个ARKWeb本地页面
749浏览 • 1回复 待解决
HarmonyOS Web组件前端页面调用应用侧函数,在页面关闭后再次打开无法触发的问题
884浏览 • 1回复 待解决
web前端页面调用应用侧函数后, promptAction.showDialog弹窗,点击按钮没有回调
1394浏览 • 1回复 待解决
在应用页面里嵌套了h5页面,前端页面调用应用侧函数根据日志打印调用不到
1584浏览 • 1回复 已解决
#鸿蒙通关秘籍#鸿蒙应用侧与前端页面如何进行数据通信?
1006浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙应用中使用异步Promise与前端页面进行通信?
1009浏览 • 1回复 待解决
#鸿蒙通关秘籍#将ArkTS前端页面完成以后,如何调用后端接口?
2752浏览 • 2回复 待解决
HarmonyOS 在h5前端侧调用应用侧方法
873浏览 • 1回复 待解决
Native调用ArkTS侧类函数
2169浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在Node-API中实现多线程JavaScript函数调用?
1362浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在主线程中加载系统模块并调用其函数?
947浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙应用中加载本地HTML页面
1636浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在TaskPool子线程中预加载So库并调用其函数?
898浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在TaskPool子线程中预加载.so库并通过句柄调用函数?
1407浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS中实现Native侧进度通知?
1148浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙的模态页面中实现页面切换?
1313浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙开发中实现列表项的侧滑删除?
1714浏览 • 1回复 待解决
为了让前端页面调用应用侧的函数,需要先在应用侧注册该函数,以下是实现步骤:
在应用侧使用
webview.WebviewController.registerJavaScriptProxy()
注册JavaScript处理函数。typescript // xxx.ets import { webview } from '@kit.ArkWeb';
class testClass { test(): string { return 'Hello from application side!'; } }
@Entry @Component struct WebComponent { webviewController: webview.WebviewController = new webview.WebviewController(); testObj: testClass = new testClass();
build() { Column() { Web({ src: $rawfile('index.html'), controller: this.webviewController }) .registerJavaScriptProxy(this.testObj, "testObj", ["test"]); } } }
在前端页面上,通过注册的对象名称调用该函数。
html <!-- index.html --> <!DOCTYPE html> <html> <body> <button type="button" onclick="showMessage()">Show Message</button> <p id="demo"></p> <script> function showMessage() { let message = testObj.test(); document.getElementById("demo").innerHTML = message; } </script> </body> </html>