Ensemble loadURLTImeOutValue sur WebView
Je travaille avec PhoneGap et Android et de mon .html et js fichiers sur un serveur externe. Lorsque j'utilise le code suivant, l'application mes charges externes .les fichiers html et tout fonctionne bien:
this.setIntegerProperty("loadUrlTimeoutValue", 60000);
this.loadUrl("http://www.myserver.com");
Toutefois, lorsque des travaux par l'intermédiaire d'un WebView
je n'arrive pas à définir la loadURLTimeoutValue
pour un 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");
}
Cela ne fonctionne pas. Comment puis-je définir la valeur de délai d'expiration sur le WebView
?
Vous devez vous connecter pour publier un commentaire.
C'est une solution de contournement pour simuler le comportement décrit. Vous pouvez utiliser un
WebViewClient
, et de remplacer lesonPageStarted
méthode:Si le délai d'attente, vous pouvez charger, par exemple, une page d'erreur...
Pour ajouter le
WebViewClient
vousWebView
, il suffit de faire ceci:if
déclaration pour vérifier si la page est chargé de la moitiéonPageStarted
méthode!J'ai utilisé cette fonction pour définir le temps de mon WebView:
La bonne façon de modifier le délai d'expiration par défaut est d'utiliser la balise
<preference />
dans config.xml fichier, par exemple:Pour plus d'options, reportez-vous à Configuration Android.
Si vous étendez CordovaWebView, que vous devez afin d'obtenir l'API phonegap, vous pouvez simplement utiliser les éléments suivants:
En interne, CordovaWebView met en œuvre un mécanisme d'expiration semblables à celles proposées dans le post précédent (délai d'expiration par défaut = 2000).
L'esprit que ce n'est pas documenté de l'interface, de sorte qu'il pourrait briser dans l'avenir.
L'utilisation de la classe Thread qui me dérange, l'appel de la WebView de l'exécution de la fonction qui va conduire à une exception comme la WebView est créé et utilisé dans un autre thread.
Je voudrais effectuer cela avec une AsyncTask.
Dans cet exemple, j'utilise un AsyncTask pour charger un fichier d'erreur dans la WebView si le délai d'attente a été atteint. Si la page se charge correctement j'ai annuler l'AsyncTask.
Le
onPostExecute
s'exécute dans le thread de l'INTERFACE utilisateur, donc il n'y a pas de fil problème de sécurité pour interagir avec le WebView: