今天在H5调用用native方法的时候,出现报错:

error Error: Java exception was raised during method invocation

at Object.call (bridge.ts:61)
at eval (bridge.ts:126)
at new Promise (<anonymous>)
at callNativeAsync (bridge.ts:125)
at mtpRequest (mtpRequest.ts:26)
at adapter (index~6af79b0c.c67a5bb7b8dc4da04ac5.js:1)
at t.exports (vendors~9b1fde68.bd829574cec9e27fdbd6.js:1)

原因:

网上找到了很好的解决方案:https://blog.csdn.net/hello_12413/article/details/90439402

原因是:在与JS交互的方法中并不是UI线程,不能直接操作View,需要放在UI线程操作才能生效。

解决办法:

将APP内操作UI的代码放入UI线程,或避免使用操作UI的代码。

runOnUiThread解决示例:

    @JavascriptInterface
    public void setTitle(final String title) {
        HandlerUtil.runOnUiThread(new Runnable() {
            @Override
            public void run() {
                mView.setWebTitle(title);
            }
        });
    }