HarmonyOS 鸿蒙Next:js处理,H5调用应用层方法
HarmonyOS 鸿蒙Next:js处理,H5调用应用层方法
应用侧的代码
TAG: string = "JSCallBack";
jsCallBack(param: string): void {
Log.info(this.TAG, 'js Web Component toString' + param);
}
注册js的代码
jsCallback: JSCallBack = new JSCallBack(); //声明
Web({ src: this.webUrl, controller: this.controller })
.javaScriptAccess(true)
.domStorageAccess(true)
.javaScriptProxy({
//添加js
object: {
call: this.jsCallback
},
name: "appCallback",
methodList: ["jsCallBack"],
controller: this.controller,
})
H5侧的代码
if (window.appCallback && typeof window.appCallback.jsCallBack === 'function') {
console.log("Calling jsCallBackwith:", jsonStr);
window.appCallback.jsCallBack(jsonStr); // 调用本地回调方法
} else {
console.error("Method jsCallBacknot available on appCallback");
}
当调用这个js时,console能看到日志,但是在Log里报错了
[webview_javascript_result_callback.h:288] JavaScriptOb FindMethod fail
[webview_javascript_result_callback.cpp:931] WebviewJavaScriptResultCallBack::ExecuteGetJavaScriptResult callback null
[webview_javascript_result_callback.cpp:781] ParseNapiValue2NwebValue napi api call fail
我这有什么问题吗
更多关于HarmonyOS 鸿蒙Next:js处理,H5调用应用层方法的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
参考下官方文档改一下试试:
更多关于HarmonyOS 鸿蒙Next:js处理,H5调用应用层方法的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
.javaJavaScriptProxy({ //添加js object: { call: this.jsCallback }, name: “zhcwclient”, methodList: [“zhcwclientCallBack”], controller: this.controller, }) 如果我把name 或者methodList的文本修改掉成别的,那么就会看到日志
Method jsCallBacknot available on appCallback
在HarmonyOS(鸿蒙)系统中,当你使用JavaScript进行开发并希望通过H5页面调用应用层方法时,通常你会依赖于鸿蒙提供的JS框架和相关API来实现这一功能。以下是一个简要的实现思路:
鸿蒙系统支持通过JS Bridge机制来实现H5页面与应用层之间的通信。你可以通过定义特定的接口或事件,在H5页面中触发这些接口或事件,然后在应用层监听并响应这些触发,从而执行相应的应用层方法。
具体步骤如下:
-
定义接口:在应用层定义可被H5页面调用的接口,这些接口可以是自定义的JS函数或者系统提供的API。
-
H5页面调用:在H5页面中,通过JavaScript代码调用这些预定义的接口。这通常涉及发送特定的消息或事件给应用层。
-
应用层响应:应用层监听这些来自H5页面的消息或事件,并根据消息内容执行相应的应用层方法。
-
数据传递:如果需要,可以在调用接口时传递数据,这些数据在应用层被接收并处理。
需要注意的是,鸿蒙系统的JS框架和API可能会随着版本更新而有所变化,因此建议查阅最新的鸿蒙开发文档以获取最准确的信息。
如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html,