Hiện tại tôi đang lập trình ứng dụng cho iOS bằng UIWebView. Mục tiêu của tôi là hiển thị một trang web php (từ máy chủ web của tôi) bằng cách sử dụng một WebView. Tôi khá giỏi với HTMl, CSS, JS và PHP nhưng Object C không phải là sức mạnh của tôi. Tuy nhiên, tôi quản lý để thực hiện tất cả mọi thứ và mục tiêu của tôi bây giờ (khi iOS không có kết nối internet) để hiển thị một tệp cục bộ thay vì tệp trên máy chủ sau khi thông báo lỗi. Sau khi sử dụng Google, tôi đã quản lý nó độc lập, nhưng không phải là dự phòng.Xcode & WebView: Tải html cục bộ nếu không có kết nối internet (dự phòng)
Ngay bây giờ nó hiển thị cảnh báo, nhưng sau khi chạm vào ok người dùng nhận được một trang trống. Không phải là rất thân thiện với người sử dụng :(Trong tập tin html địa phương tôi có thể thực hiện một loại "nút làm mới" .Tôi sẽ rất hạnh phúc, nếu bạn có một giải pháp (tốt hơn?)
Hệ thống của tôi: Xcode 4.5. 1 trên OS X 10.8.2
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
tải html địa phương khi lỗi xảy ra (bạn cần phải kiểm tra lý do tại sao lỗi là) từ - (void) WebView: (UIWebView *) WebView didFailLoadWithError: (NSError *) lỗi – Vjy