HarmonyOS鸿蒙Next中Web.javaScriptProxy注册方法太迟了,有没有在页面加载之前就调用的方法
HarmonyOS鸿蒙Next中Web.javaScriptProxy注册方法太迟了,有没有在页面加载之前就调用的方法 我们的原生和web交互有一个方法,获取App版本,这个是写在web javaScript里面,在页面加载的时候就调用,但是使用鸿蒙的web组件的javaScriptProxy是在页面加载完成后替换的,在页面加载前就调用原生的方法会失效,因为注册方法时机太靠后了。有没有在web加载前就生效的方法。
请问您这边是应用侧调用前端还是前端调用应用侧?若是注入js,可以使用javaScriptOnDocumentStart,参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-web-V5#javascriptondocumentstart11
更多关于HarmonyOS鸿蒙Next中Web.javaScriptProxy注册方法太迟了,有没有在页面加载之前就调用的方法的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,Web.javaScriptProxy
的注册通常是在页面加载后进行的,若需要在页面加载之前调用JavaScript方法,可以通过Web.setWebContentsDebuggingEnabled
和Web.setWebViewClient
来实现。具体来说,可以在WebViewClient
的onPageStarted
方法中提前执行JavaScript代码。此外,可以使用Web.evaluateJavascript
在页面加载前注入JavaScript代码。这些方法允许在页面加载之前执行JavaScript逻辑,从而避免Web.javaScriptProxy
注册过迟的问题。
在HarmonyOS鸿蒙Next中,Web.javaScriptProxy
的注册通常在页面加载后执行。如果你想在页面加载之前调用,可以通过在Web
组件的onInit
或onReady
生命周期回调中提前注册JavaScriptProxy
。例如:
@Override
protected void onInit() {
super.onInit();
Web.javaScriptProxy(this, "myProxy", new MyJavaScriptInterface());
}
这样可以确保在页面加载前完成JavaScriptProxy
的注册,从而在页面初始化时即可使用。