У меня есть статическая веб-страница с примерно 10 ссылками (элементами). Мне нужно просто: когда пользователь щелкнул ссылку, откройте ее в новом веб-просмотре. Когда пользователь вернется в меню, нажмите еще раз на эту ссылку, загрузите ранее открытое веб-представление (нет необходимости добавлять новое веб-представление с тем же URL-адресом). Вот мое решение: сохранить загруженный URL-адрес и проверить его при предварительной загрузке нового клика.
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
if(navigationType == UIWebViewNavigationTypeLinkClicked) {
if(![self checkIsAlreadyLoaded:request]) {
// load new webview
[self addWebView:request];
return NO;
}
}
return YES;
}
- (BOOL)checkIsAlreadyLoaded:(NSURLRequest *)request {
NSString *urlToCheck = request.URL.absoluteString;
NSLog(@"URL to check: %@", urlToCheck);
for (int i = 0; i < self.visitedURLsArray.count; i++) {
if([[self.visitedURLsArray objectAtIndex:i] isEqualToString:request.URL.absoluteString]) {
NSLog(@"URL Found!");
return YES;
}
}
NSLog(@"*** NOT MATCHING ***");
return NO;
}
- (void)webViewDidFinishLoad:(UIWebView *)webView {
if(![self.visitedURLsArray containsObject:webView.request.URL.absoluteString]) {
NSLog(@"saved url: %@", webView.request.URL.absoluteString);
[self.visitedURLsArray addObject:webView.request.URL.absoluteString];
}
}
Некоторые из моих ссылок являются ссылками Google, и у меня проблемы с этими ссылками. Пример: Google+ URL:
- начальный URL: https://plus.google.com/app/basic?nopromo=1&source=mog&gl=jp
- конечный загруженный URL: https://plus.google.com/collections/featured?gl=jp
Поскольку сохраненный URL-адрес всегда отличается от начального URL-адреса, я не могу открыть сохраненный URL-адрес, что мне делать с этим?