Obecnie programuję aplikację na iOS przy użyciu interfejsu UIWebView. Moim celem jest wyświetlenie strony php (z mojego serwera) przy użyciu WebView. Jestem całkiem niezły z HTMl, CSS, JS i PHP, ale Object C nie jest moją siłą. Jednak udało mi się zaimplementować wszystko, a moim celem jest teraz (gdy iOS nie ma połączenia z Internetem), aby wyświetlić plik lokalny zamiast pliku na serwerze po powiadomieniu o błędzie. Po skorzystaniu z Google udało mi się zrobić to samodzielnie, ale nie jako awarię.Xcode i WebView: Załaduj lokalny html, jeśli nie ma połączenia z Internetem (awaryjne)
Teraz wyświetla alert, ale po dotknięciu ok użytkownik otrzymuje pustą stronę. Niezbyt przyjazny dla użytkownika :(W lokalnym pliku html mógłbym wprowadzić pewien rodzaj "przycisku odświeżania". Byłbym bardzo szczęśliwy, gdybyś miał (lepsze?) Rozwiązanie. Dzięki!
Mój system: Xcode 4.5. 1 OS X 10.8.2 na
ViewController.h
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController <UIWebViewDelegate>
@property (strong, nonatomic) IBOutlet UIWebView *webView;
@property (weak, nonatomic) IBOutlet UIActivityIndicatorView *loadingSign;
- (void)loadSite;
@end
ViewController.m
#import "ViewController.h"
@interface ViewController()
@end
@implementation ViewController
@synthesize webView;
@synthesize loadingSign;
-(void) webViewDidStartLoad:(UIWebView *)webView {
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
[self.loadingSign startAnimating];
self.loadingSign.hidden = NO;
}
-(void) webViewDidFinishLoad:(UIWebView *)webView {
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
[self.loadingSign stopAnimating];
self.loadingSign.hidden = YES;
}
-(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {
[self.loadingSign stopAnimating];
self.loadingSign.hidden = YES;
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Keine Internetverbindung" message:@"Bitte verbinde dich mit dem Internet." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
}
- (void)loadSite
{
NSString *fullURL = @"http://website.com";
NSURL *url = [NSURL URLWithString:fullURL];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[webView loadRequest:requestObj];
webView.scrollView.bounces = NO;
webView.delegate = self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[self loadSite];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
obciążenia lokalnego html gdy błąd zdarza się (trzeba sprawdzić, dlaczego jest błąd) od - (void) Webview: (UIWebView *) Webview didFailLoadWithError: (NSError *) Błąd – Vjy