user1534659
user1534659

Reputation:

Phonegap / Cordova ios load remote url how to fallback to local index.html on error?

I use remote url for contents in my cordova, I use appcache to make it work offline - now the problem is handling the initial load before the appcache gets initialized.

In Android I let the device fallback to the local index.html - this could be informative eg. letting the user know that they have to be online to finalize the install.

    // On error show default message page...
public void onReceivedError( int errorCode, String description, String failingUrl)
{
    super.loadUrl("file:///android_asset/www/index.html");
    return;
}

Question: "How do I accomplish the same in IOS?"

Dont have to write the code for me - hints to files and api would be appreciated

Upvotes: 2

Views: 1446

Answers (2)

Cutetare
Cutetare

Reputation: 909

Since you simply want to do some error handling, one solution to this would be to do a SubView, and load it from whatever URL you need it from.

You can find a guide on how to do this, here:

http://docs.phonegap.com/en/3.0.0/guide_platforms_ios_webview.md.html#iOS%20WebViews

Of course, this gets called from the native part :)

Hope that helped!

Upvotes: 0

oiledCode
oiledCode

Reputation: 8649

You can you the UIWebViewDelegate methods to detect that your remote content loading has failed to load. For example :

- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
   // here you can either check for the error type or for the url that has failed to load
   if([webView.request.url.absoluteString isEqualToString:@"your_remote_url")]
   {
      NSURL *url = [NSURL urlWithString:@"your_local_url"];
      NSURLRequest *request = [NSURLRequest requestWithURL:url];
      [webview loadRequest:request];
   }
}

Upvotes: 1

Related Questions