我为WebView公开@JavascriptInterface
回调,在通过Android Studio调试应用时工作得很好,但是如果应用是通过APK安装的,那么JavaScript回调会失败:
"未捕获的TypeError:NativeApp.onProgress不是函数"
我知道不正确的Proguard规则可能导致此问题,但在这种情况下,项目不使用Proguard,调试和发布APKS会出现问题。
如果我检查APK,则存在方法。
public class MyServiceWithEmbeddedWebView {
...
public createWebview() {
...
webView.addJavascriptInterface(this, "NativeApp");
...
}
@JavascriptInterface
void onProgress(int loaded, int total) {
...
}
...
}
有什么想法吗?
答案 0 :(得分:0)
将@JavascriptInterface
方法的范围更改为public
解决了问题。
所以这适用于APK安装:
@JavascriptInterface
public void onProgress(int loaded, int total) {
// this is public
}
这不适用于APK安装,但在Android Studio调试器部署时就像冠军一样:
@JavascriptInterface
void onProgress(int loaded, int total) {
// this is NOT public
}
多烦啊!