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