我正在开发一个非常简单的应用程序,该应用程序具有单个webView,必须打开该站点的某个移动版本。这是诀窍,许多公共Wi-Fi在这里将您重定向到他们自己的小页面,他们要求您登录和填充。我需要检测到并显示“无连接”警报,并且不应该看到此登录屏幕。我试图在webView委托方法
中这样做- (BOOL) webView:(UIWebView *)inWeb shouldStartLoadWithRequest:(NSURLRequest *)inRequest navigationType:(UIWebViewNavigationType)inType {
if (![inRequest.URL.absoluteString containsString:@"mySite.com"]) {
//no connection code
return NO;
}
return YES;
}
它不起作用,登录屏幕仍然显示。这是做我需要的方式还是我必须在其他地方看待?
答案 0 :(得分:0)
听起来系统正在进行重定向并为您提供不同的数据。这通常会有不同的mainDocumentURL
,除非他们在路由器中做了一些非常偷偷摸摸的诡计。
通过检测与您最初尝试加载的mainDocumentURL
不同的- (void)webViewDidStartLoad:(UIWebView *)webView{
NSString *loadingURL = [webView.request mainDocumentURL];
if (![loadingURL isEqualToString:requestedURL]) {
webView.hidden = YES;
// Show message.
}
}
,您可以拦截行为并搞砸事情。
{{1}}