Прикосновения в UIWebView - PullRequest
       4

Прикосновения в UIWebView

1 голос
/ 02 февраля 2012

Я занимаюсь разработкой приложения для iOS с экземпляром UIWebView.

Если пользователь касается объекта на веб-странице, отображаемой в веб-представлении, как я могу извлечь метаданные относительно объекта, к которому прикоснулся (например, "id "для элемента HTML) в Objective C land?

[Меня не интересует, касался ли веб-просмотр или нет, меня интересует только то, какая часть страницы была затронута испособен действовать в этом направлении.]

1 Ответ

3 голосов
/ 02 февраля 2012

Вам, вероятно, нужно сделать это на земле JavaScript. В вашем веб-представлении настройте JavaScript для отслеживания кликов (например, element.onclick = function () {...} или используйте jQuery, если это проще).

Теперь вы можете вызывать нативный код в вашем приложении, используя составленный URL, а затем перехватывать его с помощью делегата webview, например,

//in your web page, in javascript

myDiv.onclick = function() { document.location.href = 'http://madeupdomain/' + this.id};

//webview delegate in cocoa

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    NSURL *URL = [request URL];
    NSString *host = URL.host;
    if ([host isEqualToString:@"madeupdomain"])
    {
        NSString *theDivID = URL.path;
        //now do something based on the div id value

        return NO;
    }
    return YES;
}

По сути, именно такие фреймворки, как PhoneGap, взаимодействуют между веб-представлением и собственным кодом.

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