我按照说明从 WebView 触发 JavascriptInterface,但在我的情况下未触发。
我有一个包含以下内容的 QuickTextViewer 类:
public class QuickTextViewer {
private WebView webView;
...
...
public QuickTextViewer(){
webView = dialog.findViewById(R.id.mywebview);
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
view.loadUrl("javascript:MyApp.resize(document.body.getBoundingClientRect().height)");
super.onPageFinished(view, url);
}
}
@JavascriptInterface
public void resize(final float height) {
System.out.print(height);
}
我还在 proguard-rules.pro 中添加了以下内容(实际上只公开用于测试)
-keepclassmembers class fqcn.of.javascript.interface.for.webview {
public *;
}
在我的例子中 onPageFinished 被触发但 resize() 没有! 有什么建议/帮助吗?
最佳答案
现在发现问题了。 只需添加:
webView.getSettings().setJavaScriptEnabled(true);
关于javascript - 从 android webview 触发 JavascriptInterface,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56072935/