在webview上设置loadURLTImeOutValue [英] set loadURLTImeOutValue on webview
问题描述
我使用phonegap和Android,并在外部服务器上有我的.html和js文件。当我使用下面的代码,应用加载我的外部.html文件,一切工作正常:
this.setIntegerProperty(loadUrlTimeoutValue ,60000);
this.loadUrl(http://www.myserver.com);但是,当通过webview工作时,我似乎无法为webview设置loadURLTimeoutValue: / p>
private WebView webView;
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
try {
webView =(WebView)findViewById(R.id.webview);
webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
webView.loadUrl(http://www.myserver.com);
}
这不起作用。如何在webview上设置超时值?
解决方案这是一个解决方法来模拟描述的行为。您可以使用 WebViewClient
,并覆盖 onPageStarted
方法:
public class MyWebViewClient extends WebViewClient {
boolean timeout;
public MyWebViewClient(){
timeout = true;
}
@Override
public void onPageStarted(WebView view,String url,Bitmap favicon){
new Thread(new Runnable(){
@覆盖
public void run(){
try {
Thread.sleep(1000);
} catch(InterruptedException e){
e.printStackTrace();
}
if(timeout){
// do what you want
}
}
})start();
}
@Override
public void onPageFinished(WebView view,String url){
timeout = false;
}
}
如果超时,您可以加载错误页...
要将 WebViewClient
添加到 WebView
,只需这样做:
webView.setWebViewClient(new MyWebViewClient
I'm working with phonegap and Android and have my .html and js files on an external server. When I use the following code, the app loads my external .html files and everything works fine:
this.setIntegerProperty("loadUrlTimeoutValue", 60000);
this.loadUrl("http://www.myserver.com");
However, when work via a webview I can't seem to set the loadURLTimeoutValue for a webview:
private WebView webView;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
try {
webView = (WebView) findViewById(R.id.webview);
webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
webView.loadUrl("http://www.myserver.com");
}
This doesn't work. How can I set the timeout value on the webview?
解决方案 This is a workaround to simulate the described behaviour. You can use a WebViewClient
, and override the onPageStarted
method:
public class MyWebViewClient extends WebViewClient {
boolean timeout;
public MyWebViewClient() {
timeout = true;
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
if(timeout) {
// do what you want
}
}
}).start();
}
@Override
public void onPageFinished(WebView view, String url) {
timeout = false;
}
}
If timeout, you can load, for example, an error page...
To add the WebViewClient
to you WebView
, just do this:
webView.setWebViewClient(new MyWebViewClient());
这篇关于在webview上设置loadURLTImeOutValue的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!