objective-c – Xcode和WebView:如果没有互联网连接,则加载本地html(后备)

objective-c – Xcode和WebView:如果没有互联网连接,则加载本地html(后备),第1张

概述目前我正在使用UIWebView为iOS编写应用程序.我的目标是使用WebView显示一个php站点(来自我的web服务器).我对HTMl,CSS,JS和 PHP非常好,但是对象C不是我的优势.但是我设法实现了一切,我的目标是(当iOS没有互联网连接时)在错误警报后显示本地文件而不是服务器上的文件.使用谷歌后,我设法独立完成,但不是作为后备. 现在它显示警报,但点击确定后,用户获得一个空白页面.不 目前我正在使用UIWebVIEw为iOS编写应用程序.我的目标是使用WebVIEw显示一个PHP站点(来自我的web服务器).我对HTML,CSS,Js和 PHP非常好,但是对象C不是我的优势.但是我设法实现了一切,我的目标是(当iOS没有互联网连接时)在错误警报后显示本地文件而不是服务器上的文件.使用谷歌后,我设法独立完成,但不是作为后备.

现在它显示警报,但点击确定后,用户获得一个空白页面.不是非常用户友好:(在本地html文件中我可以实现一种“刷新按钮”.如果你有一个(更好的?)解决方案,我会很高兴.谢谢!

我的系统:OS X 10.8.2上的Xcode 4.5.1

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
解决方法 您可以实现以下UIAlertVIEwDelegate方法:

- (voID)alertVIEw:(UIAlertVIEw *)alertVIEw dIDdismissWithbuttonIndex:(NSInteger)buttonIndex

当alertVIEw被解除时调用此方法,因此在他的身体中,您可以将本地资源作为后备加载.

在VIEwController的界面中,你应该添加:

@interface VIEwController : UIVIEwController <uiwebviewdelegate,UIAlertVIEwDelegate>

当你分配你的alertVIEw时,将委托设置为self.

我的意思是:

UIAlertVIEw *alert = [[UIAlertVIEw alloc] initWithTitle:@"Keine Internetverbindung" message:@"Bitte verbinde dich mit dem Internet." delegate:self cancelbuttonTitle:@"OK" otherbuttonTitles:nil];
总结

以上是内存溢出为你收集整理的objective-c – Xcode和WebView:如果没有互联网连接,则加载本地html(后备)全部内容,希望文章能够帮你解决objective-c – Xcode和WebView:如果没有互联网连接,则加载本地html(后备)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1054991.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-25
下一篇2022-05-25

发表评论

登录后才能评论

评论列表(0条)

    保存