Я использую PhoneGap для проекта iOS, и все работает, за исключением того, что я хочу обнаружить щелчок по ссылке выхода из системы в нашем веб-приложении и перехватить ее с помощью локальной логики выхода из системы. Я могу обнаружить ссылку выхода из системы, но логика ниже ТАКЖЕ думает, что это страница выхода из системы, когда о: пустые выстрелы в UIWebView PhoneGap. Есть идеи, что я делаю не так?
- (BOOL)webView:(UIWebView *)theWebView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
NSURL *url = [request URL];
// If we detect the logout.jsp we need to go back to the login form and reset the credentials
if ([[url path] rangeOfString:@"logout.jsp"].location == NSNotFound) {
if ([[url scheme] isEqualToString:@"http"] || [[url scheme] isEqualToString:@"https"]) {
return YES;
}
else {
return [ super webView:theWebView shouldStartLoadWithRequest:request navigationType:navigationType ];
}
}
else {
// have PhoneGap go back to index page
NSString *urlAddress = [[NSBundle mainBundle] pathForResource:@"www/index" ofType:@"html"];
NSURL *url = [NSURL fileURLWithPath:urlAddress];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[theWebView loadRequest:requestObj];
return NO;
}
}
EDIT:
Я не решил, почему это происходит, поэтому сейчас я добавил этот обходной путь в основное предложение else:
if ([[url path] rangeOfString:@"about:blank"].location != NSNotFound) {
return YES;
}
Награда достанется тому, кто сможет выяснить, почему мне даже нужен этот обходной путь, когда начальный IF проверяет только строку logout.jsp в url и about: blank никогда не должен совпадать с этим, но в этом случае.