javascript – “未捕获TypeError:window.HTMLOUT.showHTML不是函数”

我正在尝试在加载webView时注入JavaScript以读取特定值.

这些是我用于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()方法中注入javacript.

        @Override
        public void onPageFinished(final WebView view,final String url) {
            webView.post(new Runnable() {
                @Override
                public void run() {
                    webView.loadUrl("javascript:window.HTMLOUT.showHTML('

下面的代码是MyJavaScriptInterface.

public  class MyJavaScriptInterface{

    @JavascriptInterface
    public void showHTML(String html_data) {
        if(html_data.contains("response_code")){
            Log.e(TAG," ======>  HTML Data : "+  html_data);
            new MakeQueryPayment().execute();
        }        
    }
}

从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,Android版本为5.0.2.在我们拥有的其他设备中,它工作正常.任何人都可以帮助我解决这个问题.
提前致谢.

最佳答案
我尝试使用Galaxy Tab 4,这个代码在这个设备上运行良好.

WebView properties

WebView webView = new WebView(this);
setContentView(webView);
webView.clearHistory();
webView.clearCache(true);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setCacheMode(2);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setSupportZoom(true);
webView.getSettings().setUseWideViewPort(false);
webView.getSettings().setLoadWithOverviewmode(false);
webView.addJavascriptInterface(new MyJavaScriptInterface(),"HTMLOUT");
webView.loadUrl("https://stackoverflow.com/questions/34746626/uncaught-typeerror-window-htmlout-showhtml-is-not-a-function");

webView.setWebViewClient(new WebViewClient() {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view,String url) {
            return true;
    }              

    @Override
    public void onPageStarted(WebView view,String url,Bitmap favicon) {
    }

    public void onPageFinished(WebView view,String url) {
        view.loadUrl("javascript:window.HTMLOUT.showHTML('

JavaScript Interface

public  class MyJavaScriptInterface{

    @JavascriptInterface
    public void showHTML(String html_data) {
        Log.e(""," ======>  HTML Data : "+  html_data);
    }
}

相关文章

事件冒泡和事件捕获 起因:今天在封装一个bind函数的时候,发现el.addEventListener函数支持第三个参数...
js小数运算会出现精度问题 js number类型 JS 数字类型只有number类型,number类型相当于其他强类型语言...
什么是跨域 跨域 : 广义的跨域包含一下内容 : 1.资源跳转(链接跳转,重定向跳转,表单提交) 2.资源...
@ "TOC" 常见对base64的认知(不完全正确) 首先对base64常见的认知,也是须知的必须有...
搞懂:MVVM模式和Vue中的MVVM模式 MVVM MVVM : 的缩写,说都能直接说出来 :模型, :视图, :视图模...
首先我们需要一个html代码的框架如下: 我们的目的是实现ul中的内容进行横向的一点一点滚动。ul中的内容...