Android onPageFinished未被触发

Android onPageFinished未被触发,android,android-webview,Android,Android Webview,任何原因导致未触发onProgressChanged或onPageFinished 我的webview没有任何错误(如google chrome的inspect所示) webview活动中的我的代码是: 我看到了,但因为我是android编程新手,所以无法判断我是否犯了同样的错误 有人能帮我修改代码吗 提前谢谢 private WebView mWebView; @Override protected void onCreate(Bundle savedInstanceState) {

任何原因导致未触发
onProgressChanged
onPageFinished

我的
webview
没有任何错误(如google chrome的
inspect
所示)
webview活动中的我的代码是:

我看到了,但因为我是android编程新手,所以无法判断我是否犯了同样的错误

有人能帮我修改代码吗

提前谢谢

private WebView mWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    TwitterAuthConfig authConfig = new TwitterAuthConfig(TWITTER_KEY, TWITTER_SECRET);
    Fabric.with(this, new TwitterCore(authConfig), new Digits());
    setContentView(R.layout.activity_main);

    mWebView = (WebView) findViewById(R.id.activity_main_webview);
    mWebView.setWebViewClient(new WebViewClient());
    mWebView.setWebChromeClient(new WebChromeClient());
    WebSettings webSettings = mWebView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    mWebView.addJavascriptInterface(this, "Android");
    mWebView.loadUrl("file:///android_asset/index.html");

}
public void onProgressChanged(WebView view, int progress){//not working
    if(progress==100) {
        SharedPreferences settings = getApplicationContext().getSharedPreferences(PREFS_NAME, 0);
        String userPhone = settings.getString("userPhone", "null");
        Long userId = settings.getLong("userId", 0);
        String retVal = userPhone + "$" + userId;
        mWebView.loadUrl("javascript:displayUser('" + retVal + "')");
    }
}
public void onPageFinished(WebView view, String url){//not workin
        SharedPreferences settings = getApplicationContext().getSharedPreferences(PREFS_NAME, 0);
        String userPhone = settings.getString("userPhone", "null");
        Long userId = settings.getLong("userId", 0);
        String retVal = userPhone + "$" + userId;
        mWebView.loadUrl("javascript:displayUser('" + retVal + "')");
}

多亏了@323go,以下是答案(尽管我只希望我的任务没有被否决:)


onProgressChanged
onPageFinished
需要成为
WebChromeClient
的一部分。修改代码:

private WebView mWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    TwitterAuthConfig authConfig = new TwitterAuthConfig(TWITTER_KEY, TWITTER_SECRET);
    Fabric.with(this, new TwitterCore(authConfig), new Digits());
    setContentView(R.layout.activity_main);

    mWebView = (WebView) findViewById(R.id.activity_main_webview);
    mWebView.setWebViewClient(new WebViewClient());
    mWebView.setWebChromeClient(new WebChromeClient() {
        public void onProgressChanged(WebView view, int progress){//not working
            if(progress==100) {
                SharedPreferences settings = getApplicationContext().getSharedPreferences(PREFS_NAME, 0);
                String userPhone = settings.getString("userPhone", "null");
                Long userId = settings.getLong("userId", 0);
                String retVal = userPhone + "$" + userId;
                mWebView.loadUrl("javascript:displayUser('" + retVal + "')");
            }
        }
        public void onPageFinished(WebView view, String url){//not workin
            SharedPreferences settings = getApplicationContext().getSharedPreferences(PREFS_NAME, 0);
            String userPhone = settings.getString("userPhone", "null");
            Long userId = settings.getLong("userId", 0);
            String retVal = userPhone + "$" + userId;
            mWebView.loadUrl("javascript:displayUser('" + retVal + "')");
        }
    });
    WebSettings webSettings = mWebView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    mWebView.addJavascriptInterface(this, "Android");
    mWebView.loadUrl("file:///android_asset/index.html");

}

他们为什么要工作?您没有告诉
WebView
这些方法。它们应该是
WebChromeClient
的一部分。谢谢。。。。知道了。。。回答我的问题,以防万一还有其他问题。:)事实上这不是打字错误。。。我认真地认为“onCreate”应该与“onPageFinished”具有相同的层次结构。
onProgressChanged
onPageFinished
不是
WebChromeClient
的一部分,而是
WebViewClient