[英]Android WebView doesn't load multiple pages
我正在嘗試一個接一個地加載多個頁面,每次加載間隔30秒。 這是我的課:
public class MainActivity extends Activity {
private WebView wv;
@SuppressLint("SetJavaScriptEnabled")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
wv = new WebView(this);
wv.setWebViewClient(new WebViewClient());
wv.getSettings().setJavaScriptEnabled(true);
setContentView(wv);
String[] urlArr = {"http://www.google.com", "http://www.cnn.com", "http://www.wired.com"};
int delay = 30 * 1000;
Handler handler = new Handler();
for(int i = 0; i < urlArr.length; i++) {
MyRunnable runnable = new MyRunnable(urlArr[i]);
handler.postDelayed(runnable, delay);
delay = delay + 30 * 1000;
}
}
private class MyRunnable implements Runnable {
private String url;
public MyRunnable(String url) {
this.url = url;
}
public void run() {
wv.loadUrl(url);
Log.d("MainActivity", "PageLoaded: " + url);
}
}
}
因此,邏輯很簡單:我只有一個WebView實例。 然后,在for循環內,我調用postDelayed()
。 即使日志顯示“ PageLoaded”,它也只會加載google.com,而不會加載其他兩個。 是否有使用Handler
的解決方案?
好,解決了 實際上,我發布的代碼可以正常工作。 當我要加載的頁面要求您通過Javascript彈出窗口離開頁面時,就會出現問題。 您有兩種方法來處理此行為:
WebChromeClient
並處理彈出窗口 因此,即使更多的內存昂貴(也許是?),此解決方案(第二個解決方案)也可以正常工作:
public class MainActivity extends Activity {
@SuppressLint("SetJavaScriptEnabled")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String[] urlArr = {"http://www.google.com", "http://www.cnn.com", "http://www.wired.com"};
int delay = 30 * 1000;
Handler handler = new Handler();
for(int i = 0; i < urlArr.length; i++) {
WebView wv = new WebView(this);
wv.setWebViewClient(new WebViewClient());
wv.getSettings().setJavaScriptEnabled(true);
MyRunnable runnable = new MyRunnable(urlArr[i], wv);
handler.postDelayed(runnable, delay);
delay = delay + 30 * 1000;
}
}
private class MyRunnable implements Runnable {
private String url;
private WebView wv;
public MyRunnable(String url, WebView wv) {
this.url = url;
this.wv = wv;
}
public void run() {
setContentView(wv);
wv.loadUrl(url);
Log.d("MainActivity", "PageLoaded: " + url);
}
}
}
希望這對某人有幫助,還是謝謝您!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.