Javascript &引用;未捕获类型错误:window.HTMLOUT.showHTML不是函数;
我试图在加载Javascript &引用;未捕获类型错误:window.HTMLOUT.showHTML不是函数;,javascript,java,android,android-webview,Javascript,Java,Android,Android Webview,我试图在加载webView时注入JavaScript以读取特定值 webView.getSettings().setBuiltInZoomControls(true); webView.getSettings().setCacheMode(2); webView.getSettings().setDomStorageEnabled(true); webView.clearHistory(); webView.clearCache(true); we
webView
时注入JavaScript以读取特定值
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setCacheMode(2);
webView.getSettings().setDomStorageEnabled(true);
webView.clearHistory();
webView.clearCache(true);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setSupportZoom(true);
webView.getSettings().setUseWideViewPort(false);
webView.getSettings().setLoadWithOverviewMode(false);
webView.addJavascriptInterface(new MyJavaScriptInterface(), "HTMLOUT");
这些是我用于我的webView
的属性
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setCacheMode(2);
webView.getSettings().setDomStorageEnabled(true);
webView.clearHistory();
webView.clearCache(true);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setSupportZoom(true);
webView.getSettings().setUseWideViewPort(false);
webView.getSettings().setLoadWithOverviewMode(false);
webView.addJavascriptInterface(new MyJavaScriptInterface(), "HTMLOUT");
我正在我的onPageFInished()
方法中注入JavaScript
@Override
public void onPageFinished(final WebView view, final String url) {
webView.post(new Runnable() {
@Override
public void run() {
webView.loadUrl("javascript:window.HTMLOUT.showHTML('<head>'+document.getElementsByTagName('input')[0].value+'</head>');");
}
});
super.onPageFinished(view, url);
}
我从Logcat中捕获的错误
01-08 17:56:43.701 I/chromium(27026): [INFO:CONSOLE(1)] "Uncaught TypeError: window.HTMLOUT.showHTML is not a function", source: (1)
我只在三星Galaxy Tab A中面临这个问题,型号是SM-T550,安卓版本是5.0.2。在我们的其他设备中,它工作正常。谁能帮我解决这个问题。
提前感谢。我尝试了Galaxy Tab 4,该代码在该设备上运行良好 网络视图属性
对我来说,由于它在升级到最新的targetSDK之前运行良好,我只需在所有函数上添加注释
@JavascriptInterface
例如:
@JavascriptInterface
public void eventDragStart() {
// do somthing
}
在build.gradle中将minifyEnabled更改为false。感谢tiny sunlight,您的回答解决了我的问题,但是必须有其他解决方法,因为启用minifyEnabled非常重要。检查您的应用程序是否将minifyEnabled设置为true。在我的位置上引用这个,它在其他三星标签中也可以正常工作。@nurisezgin我试图将html_数据的值发送到UI,但我使用mWebView.loadUrl(“javascript:MyFunction(“+html_数据+”);”)在textarea上获得了空数据;toast显示了值,但我无法将其传递给javascript!你能帮我修一下吗?谢谢!您的问题到底是什么,您是否尝试从java调用javascript方法?
public class MyJavaScriptInterface{
@JavascriptInterface
public void showHTML(String html_data) {
Log.e("", " ======> HTML Data : "+ html_data);
}
}
@JavascriptInterface
public void eventDragStart() {
// do somthing
}