【发布时间】:2018-09-02 14:47:37
【问题描述】:
我正在尝试找出如何最好地确定页面在 iOS 中是否可用。我有一个可以查看 URL 请求代码的 WKWebView,它适用于 404、500 等。但是,当预期的 URL 的服务器可能关闭时,我不确定如何处理对 URL 的请求。我的 WKWebView 启动导航委托方法触发,然后什么也没有。我的网络请求似乎消失了。
例如,Chrome 会返回一条消息“无法访问此站点 chess.math.science.google.com 的服务器 IP 地址找不到。”
我已经在我的didStartProvisionalNavigation 委托方法中包含了 iOS Reachability 类,这就是说 URL 应该可以通过 WIFI 访问,虽然不是不正确,但不会检查 URL 是否有任何要返回的内容。
应用日志:
2018-03-23 16:28:54.142105-0400 MyApp[1245:774884] INTERNET REACHABLE
2018-03-23 16:28:54.272582-0400 MyApp[1245:774884] WKWEBVIEW DID START NAVIGATION
2018-03-23 16:28:54.274085-0400 MyApp[1245:774884] NETWORK STATUS FOR URL chess.math.science.google.com: 2
(lldb) po netStatus
ReachableViaWiFi
代码:
-(void)webView:(WKWebView *)webView didStartProvisionalNavigation:(WKNavigation *)navigation{
NSLog(@"WKWEBVIEW DID START NAVIGATION");
Reachability* tinyReach = [Reachability reachabilityWithHostname:webView.URL.absoluteString];
NetworkStatus netStatus = [tinyReach currentReachabilityStatus];
NSLog(@"NETWORK STATUS FOR URL %@: %li", webView.URL.absoluteString, netStatus);
if(netStatus == NotReachable) {
NSLog(@"NOT REACHABLE");
【问题讨论】:
-
stackoverflow.com/a/1863192/9137841 看看这个对你有帮助
标签: ios objective-c wkwebview reachability