android无法传递给js数据问题

2019-12-06  本文已影响0人  达布遛

webview上android原生可以获取到js传递的数据,并获取其方法,在往JS传递数据时js方却接收不到。

需求是拦截js方法的同时再给js传递一个token数据。

最终解决方案是1.

@JavascriptInterface
public void triggerPostAuth(String c) {
ToastUtil.showLongToast(c);
String nzothToken = SpUtils.getInstance().getString("nzothToken", "");
     runOnUiThread(new Runnable() {
     @Override
        public void run() {
LogUtils.e("callbackPostAuth:==="+"javascript:callbackPostAuth(" +"'"+nzothToken+"'" +")");
            mWebView.loadUrl("javascript:callbackPostAuth('"+nzothToken+"')");
        }
});}

第一点要注意的是接收到js传递的方法和参数要再传递给js参数时要在runOnuiThread 的里执行,否则是提不到js上的。

2.需要设置websetting。

//设置支持DomStorage
        mWebView.getSettings().setDomStorageEnabled(true);

网上一些资料基本没有说到重点。
如果正巧解决你的焦头烂额,那就给个赞吧。

上一篇下一篇

猜你喜欢

热点阅读