相关问题
#鸿蒙通关秘籍#如何通过应用侧调用前端页面的JavaScript函数?
1184浏览 • 1回复 待解决
HarmonyOS 前端页面调用应用侧函数的时候获取不到
746浏览 • 1回复 待解决
ArkWeb:前端页面调用应用侧函数是同步还是异步?
1408浏览 • 1回复 待解决
web组件中应用侧调用前端页面函数无法传递参数
1504浏览 • 1回复 待解决
ArkTS web组件前端页面调用应用侧函数如何设置多个javaScriptProxy
4205浏览 • 0回复 待解决
HarmonyOS 前端页面调用应用侧函数javascript可运行demo(javaScriptProxy)
1085浏览 • 1回复 待解决
HarmonyOS 前端页面调用应用侧函数registerJavaScriptProxy没有挂载在window上
1232浏览 • 1回复 待解决
前端页面调用应用侧函数时,提示参数类型不支持
1439浏览 • 1回复 待解决
HarmonyOS 如何在前端页面执行应用侧class类方法中 打开加载另外一个ARKWeb本地页面
763浏览 • 1回复 待解决
HarmonyOS Web组件前端页面调用应用侧函数,在页面关闭后再次打开无法触发的问题
892浏览 • 1回复 待解决
web前端页面调用应用侧函数后, promptAction.showDialog弹窗,点击按钮没有回调
1407浏览 • 1回复 待解决
在应用页面里嵌套了h5页面,前端页面调用应用侧函数根据日志打印调用不到
1628浏览 • 1回复 已解决
#鸿蒙通关秘籍#鸿蒙应用侧与前端页面如何进行数据通信?
1018浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙应用中使用异步Promise与前端页面进行通信?
1018浏览 • 1回复 待解决
#鸿蒙通关秘籍#将ArkTS前端页面完成以后,如何调用后端接口?
2784浏览 • 2回复 待解决
HarmonyOS 在h5前端侧调用应用侧方法
886浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在Node-API中实现多线程JavaScript函数调用?
1377浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在主线程中加载系统模块并调用其函数?
962浏览 • 1回复 待解决
Native调用ArkTS侧类函数
2214浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙应用中加载本地HTML页面
1683浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在TaskPool子线程中预加载So库并调用其函数?
914浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS中实现Native侧进度通知?
1170浏览 • 1回复 待解决
#鸿蒙通关秘籍#鸿蒙应用和页面生命周期函数使用详解
1725浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在应用接续中控制迁移时的页面显示?
890浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙开发中实现列表项的侧滑删除?
1735浏览 • 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>