在webview上设置loadURLTImeOutValue [英] set loadURLTImeOutValue on webview

查看:1860
本文介绍了在webview上设置loadURLTImeOutValue的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆