E / Web控制台(8272):未捕获的Ref​​erenceError:函数名没有定义:1,同时加载webviews视图中的寻呼机 [英] E/Web Console(8272): Uncaught ReferenceError: functionName is not defined:1 while loading webviews in a View Pager

查看:177
本文介绍了E / Web控制台(8272):未捕获的Ref​​erenceError:函数名没有定义:1,同时加载webviews视图中的寻呼机的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图加载webviews在视图中的寻呼机。

I am trying to load webviews in a view pager.

public View onCreateView(LayoutInflater inflater, ViewGroup container, 
        Bundle savedInstanceState) {

        View v = null;      
        v = inflater.inflate(R.layout.webview_layout, container, false);
        myWebView = (WebView)v.findViewById(R.id.webview1);
        WebSettings webSettings = myWebView.getSettings();      
        webSettings.setJavaScriptEnabled(true);
        webSettings.setAppCacheEnabled(true);

        webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
        myWebView.loadUrl("file:///android_asset/web/index.html");

        myWebView.setWebViewClient(new WebViewClient() {


            @Override
            public void onPageFinished(WebView view, String url) {


                    myWebView.loadUrl("javascript:testFunction()");


            }
}

加载页面后,一个JavaScript函数被调用 onPageFinished() 而在正常的速度滚动的网页加载并执行JavaScript的。

After loading the page, a javascript function is called in onPageFinished() While scrolling at normal speed the webpages are loading and the javascript is executed.

但在高速滚动时下列异常发生。

But while scrolling at high speed the following exception is occured.

> 09-06 14:29:06.750: E/Web Console(8272): Uncaught ReferenceError:
> testFunction is not defined:1

testFunction()是

testFunction() is

function testFunction(){
    console.log("TestFuntion");     

}

请帮忙...

推荐答案

我对这个修复

刚刚成立webChromeClient和捕获错误并重新加载页面...

just set webChromeClient and catch the error and reload the page...

    myWebView.setWebViewClient(new WebViewClient() {
        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            isLoading = true;
        }

        @Override
        public void onPageFinished(WebView view, String url) {
            myWebView.loadUrl("javascript:testFunction()");
        }
    });

    myWebView.setWebChromeClient(new WebChromeClient() {
        @Override
        public boolean onConsoleMessage(ConsoleMessage consoleMessage) {
            MessageLevel level = consoleMessage.messageLevel();
            if(level.ordinal() == 3) { // Error ordinal
                if(loading) {
                    myWebView.stopLoading();
                    myWebView.loadUrl(AppConstants.ARTICLE_PAGE_URL);
                }
            }
        }
        return false;
    }

这篇关于E / Web控制台(8272):未捕获的Ref​​erenceError:函数名没有定义:1,同时加载webviews视图中的寻呼机的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆