E/Web 控制台(8272):未捕获的 ReferenceError:未定义函数名称:1 在视图寻呼机中加载 web

2023-10-03移动开发问题
0

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

问题描述

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

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()");
        }
    }
}

加载页面后,在onPageFinished()中调用了一个javascript函数以正常速度滚动时,网页正在加载并执行 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):未捕获的 ReferenceError:未定义函数名称:1 在视图寻呼机中加载 web 视图时的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

如何在 COCOS2d Android 中使用 CClistview?
How can I use CClistview in COCOS2d Android?(如何在 COCOS2d Android 中使用 CClistview?)...
2024-08-12 移动开发问题
5

cocos2d-android:如何显示分数
cocos2d-android: how to display score(cocos2d-android:如何显示分数)...
2024-08-11 移动开发问题
7

Sqlite 数据库未从资产文件夹 Android 复制
Sqlite database not copied from asset folder Android(Sqlite 数据库未从资产文件夹 Android 复制)...
2024-04-15 移动开发问题
8

SQLite 数据库副本在由设备而不是模拟器生成时出现损坏
SQLite Database Copy Appears Corrupted When Generated by Device and not Emulator(SQLite 数据库副本在由设备而不是模拟器生成时出现损坏)...
2024-04-15 移动开发问题
4

iPhone上的WebKit:是否可以使用JavaScript将文本复制到剪贴板
WebKit on th iPhone: is it possible to copy text to the clipboad with JavaScript(iPhone上的WebKit:是否可以使用JavaScript将文本复制到剪贴板)...
2024-04-15 移动开发问题
3

安卓文件拷贝
Android file copy(安卓文件拷贝)...
2024-04-15 移动开发问题
6