我们的项目开发中会碰到与H5交互的需求,有一个坑需要注意下:
H5是在子线程调用原生方法的,并且如果调用报错,就不会有任何提示##
这里我们在调试的时候需要特别注意,像我就是被这个问题坑了几个小时😂。界面显示一直有问题,代码执行到操作某个布局时就断了,也没有崩溃,也没有报错日志。
我们在被H5调用的方法里这样写,回到主线程。
private class JsInterface {
// H5调用这个方法
@JavascriptInterface
public void onWhiteboardSize(String json) {
runOnUiThread(new Runnable() {
@Override
public void run() {
// 回到主线程,再做后续的事
}
});
}
}