iOS在webview中没有internet连接时显示警报

iOS在webview中没有internet连接时显示警报,ios,webview,Ios,Webview,我正在用xCode制作一个简单的webview应用程序。如果没有可用的internet连接,我希望通知用户。当没有internet连接时,将弹出一个窗口,告诉您“没有可用的internet连接”和两个选项-重试,然后取消。我该怎么做?我是这方面的初学者,请简单解释一下 ViewController.m #import "ViewController.h" @interface ViewController () <UIWebViewDelegate> @end @impleme

我正在用xCode制作一个简单的webview应用程序。如果没有可用的internet连接,我希望通知用户。当没有internet连接时,将弹出一个窗口,告诉您“没有可用的internet连接”和两个选项-重试,然后取消。我该怎么做?我是这方面的初学者,请简单解释一下

ViewController.m

#import "ViewController.h"

@interface ViewController () <UIWebViewDelegate>

@end

@implementation ViewController

@synthesize webView;

- (void)viewDidLoad
{

NSURL *url = [NSURL URLWithString:@"http://MyWebPage.com"];
NSURLRequest *requestURL = [NSURLRequest requestWithURL:url];
webView.delegate = self;
[webView loadRequest:requestURL];

[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}

@end
#导入“ViewController.h”
@界面视图控制器()
@结束
@实现视图控制器
@综合网络视图;
-(无效)viewDidLoad
{
NSURL*url=[NSURL URLWithString:@”http://MyWebPage.com"];
NSURLRequest*requestURL=[nsurlRequestRequestWithUrl:url];
webView.delegate=self;
[webView loadRequest:requestURL];
[超级视图下载];
//加载视图后,通常从nib执行任何其他设置。
}
-(无效)未收到记忆警告
{
[超级记忆警告];
//处置所有可以重新创建的资源。
}
@结束

我同意利奥的观点,但我会简短地解释一下:

  • 从apple或github获取类的可访问性:
    --这是一个允许您检查internet/查看是否可以访问特定主机的类/

  • 在viewController中,在加载网站之前检查可达性。。 --也许在视图中会出现

    - (void)viewWillAppear:(BOOL)animated {
            [super viewWillAppear:animated];        
            _reachability = [Reachability reachabilityForInternetConnection];
            [self handleReachability];
    
            //optional monitor
            [[NSNotificationCenter defaultCenter] addObserver:self
                                                     selector:@selector(handleReachability: )
                                                         name:@"kReachabilityChangedNotification" object:nil];
    
            [_reachability startNotifier]; //! don't forget to remove the notification in viewWillDisappear  
    
        }
    
  • 实现handle方法,例如显示简单的UIAlertView:

    -(void)handleReachability:(NSNotificationCenter*)notification{
        NetworkStatus netStatus = [reach currentReachabilityStatus];
    
        if(netStatus == NotReachable) {
            [self setNoInternet:YES];
            // what happens when network/server down: 
            if([webView isLoading]) {
                [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
                [webView stopLoading];
                hasLoaded = NO;
            }
    
        }else {
            [self setNoInternet:NO];
            if(![webView isLoading] && !hasLoaded) {
                hasLoaded = NO;
                [self load];
            }
        }
    }
    

  • 嗯,你到底做了什么研究?所以不是你的“为我做我的代码”网站。这很简单,但你应该自己学。让你解释一下怎么做,我就能学会。这不是一个教学网站。从苹果的文档中学习,如果你遇到了问题,在这里通过展示你尝试过的和没有成功的来提问。