更新时间:2022-02-19 16:05:32浏览次数:390+次
鸿蒙webview与js交互,使用以下代码:
webView.addJsCallback("goAppealView", new JsCallback() {
@Override
public String onCallback(String msg) {
// 增加自定义处理
HiLog.info(MoliApplication.LABEL,"msg------------"+msg);
return "jsResult";
}
});
但是发现并不行,之前android的webview是这样用的,如下:
webView.addJavascriptInterface(this, "JsBridge");
@JavascriptInterface
public void goAppealView(String dataSts) {
}
到了鸿蒙中,一下子不知道如何实现了,其中js的代码还是之前的,在android app上的交互是可以的,现在只想用鸿蒙开发一个版本。注:以上js的代码,以前和android的webview交互是可以的,同时js里面对象是存在的。
有网友给出了可实现的方法,如下截图:
同时,要注意在js那边调用不要写错,当前安卓和鸿蒙调用的代码就不一样。鸿蒙里的js得写java.goAppealView,安卓写的是jsBridge.goAppealView。
有些开发者认为,需要在主线程里获取js返回数据,如下代码:
dispatcher = getMainTaskDispatcher();
webview.addJsCallback(JS_NAME, new JsCallback() {
@Override
public String onCallback(String s) {
dispatcher.asyncDispatch(new Runnable() {
@Override
public void run() {
textName.setText(s);
}
});
return "jsResult";
}
});
相关资讯