HarmonyOS鸿蒙Next中Web.javaScriptProxy注册方法太迟了,有没有在页面加载之前就调用的方法

HarmonyOS鸿蒙Next中Web.javaScriptProxy注册方法太迟了,有没有在页面加载之前就调用的方法 我们的原生和web交互有一个方法,获取App版本,这个是写在web javaScript里面,在页面加载的时候就调用,但是使用鸿蒙的web组件的javaScriptProxy是在页面加载完成后替换的,在页面加载前就调用原生的方法会失效,因为注册方法时机太靠后了。有没有在web加载前就生效的方法。

3 回复

请问您这边是应用侧调用前端还是前端调用应用侧?若是注入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.setWebContentsDebuggingEnabledWeb.setWebViewClient来实现。具体来说,可以在WebViewClientonPageStarted方法中提前执行JavaScript代码。此外,可以使用Web.evaluateJavascript在页面加载前注入JavaScript代码。这些方法允许在页面加载之前执行JavaScript逻辑,从而避免Web.javaScriptProxy注册过迟的问题。

在HarmonyOS鸿蒙Next中,Web.javaScriptProxy的注册通常在页面加载后执行。如果你想在页面加载之前调用,可以通过在Web组件的onInitonReady生命周期回调中提前注册JavaScriptProxy。例如:

@Override
protected void onInit() {
    super.onInit();
    Web.javaScriptProxy(this, "myProxy", new MyJavaScriptInterface());
}

这样可以确保在页面加载前完成JavaScriptProxy的注册,从而在页面初始化时即可使用。

回到顶部