E/Web控制台(8272):未捕获的ReferenceError:未定义functionName:1在View Pager中加载webviews时

Abi*_*Abi 2 javascript jquery android webview android-viewpager

我正在尝试在视图寻呼机中加载webviews.

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()");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

加载页面后,调用javascript函数在onPageFinished() 以正常速度滚动时,网页正在加载并执行javascript.

但是在高速滚动时会发生以下异常.

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

testFunction()是

function testFunction(){
    console.log("TestFuntion");     
}
Run Code Online (Sandbox Code Playgroud)

请帮忙...

Abi*_*Abi 5

我对此有所了解

只需设置webChromeClient并捕获错误并重新加载页面......

    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;
    }
Run Code Online (Sandbox Code Playgroud)