Android WebView里H5调用JS方法为啥没反应?
我在做混合开发,H5页面嵌在Android的WebView里,想通过JSBridge调用原生方法,但点击按钮完全没反应。安卓那边说接口已经注入了,但我这边调用好像没触发。
我试过加try-catch也没报错,控制台也看不到任何输出。是不是我调用方式不对?下面是我写的调用代码:
function callNative() {
if (window.Android) {
window.Android.showToast('Hello from H5');
} else {
console.log('Android bridge not found');
}
}
几个关键检查点:
1. 首先确认WebView设置正确:
2. 安卓端注入的姿势要对:
3. 你的JS代码其实没问题,但性能上建议加个超时兜底:
4. 最坑的是安卓4.2以上要加@JavascriptInterface注解:
先让安卓同事确认这几点,特别是最后那个注解,我们项目组之前就被这个坑了两天。如果还不行,让他们查logcat看有没有安全策略拦截的日志。