проблема с просмотром веб-страниц и переопределением ссылок - PullRequest
0 голосов
/ 15 января 2012

У меня есть UIWebView, в котором некоторые его части имеют <a href="" > <img src="" </a>.Я добавил UITapGesture к этому UIWebView, и поэтому я хочу, чтобы пользователь, в основном, нажимал на изображение, он не приводил вас к указанной ссылке, а скорее что-то делал.У меня проблемы с предотвращением перехода изображения на гиперссылку, на которую оно указывает.Любая идея?Я попытался внедрить javascript, чтобы он изменял href на какую-то фальшивую ссылку, когда пользователь нажимает на изображение, а затем на:

- (BOOL)webView:(UIWebView *)webview shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {

Я проверил URL-адрес запроса, если он соответствует фиктивной, которую я имею.Однако это не работает, по какой-то причине изменив ссылку href, используя:

NSString *stripLink = [NSString stringWithFormat:@"document.elementFromPoint(%f, %f).parentNode.href=%@", pt.x, pt.y, @"http://www.fakeurl.com"];
    if ([self stringByEvaluatingJavaScriptFromString:stripLink] != nil){
        NSString *testHref = [NSString stringWithFormat:@"document.elementFromPoint(%f, %f).parentNode.href", pt.x, pt.y];
        NSLog(@"FINAL HREF IS %@", [self stringByEvaluatingJavaScriptFromString:testHref]);
    }

какие-либо другие идеи?

1 Ответ

1 голос
/ 15 января 2012

Если у вас есть контроль над источником HTML (и это звучит так, как у вас?), То вы можете изменить href для использования пользовательской схемы URI, например, фото: // тогда вы можете сделать следующее:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    NSURL *url = [request URL];
    if ([[url scheme] isEqualToString:@"photo"])
    {
         // Custom Handling Goes Here
         return NO;  // Stops the link being executed by UIWebView
    } else
         return YES;
}

Если, однако, вы не можете контролировать исходный код HTML, возможно, вам нужно быть немного хитрее. Например. Вы можете проверить конец пути и посмотреть, является ли это изображение (jpg, png и т. д.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...