更新升级 专属应用 系统故障 硬件故障 电脑汽车 鸿蒙刷机 鸿蒙开发Linux教程 鸿蒙开发Linux命令
当前位置:HMXT之家 > 应用开发 > 关于鸿蒙webview与js交互问题,附代码

关于鸿蒙webview与js交互问题,附代码

更新时间: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";

   }

});

相关参考:鸿蒙JAVA UI开发环境Webview怎么设置cookie和读取cookie