какао ссылки на веб-сайты отключены - PullRequest
0 голосов
/ 17 сентября 2011

В OSX я использую XCode для создания настольного приложения с веб-обзором.Веб-просмотр загружается нормально, и я могу динамически загружать в него контент - но когда я нажимаю на ссылки внутри веб-просмотра, они не отслеживаются.Они меняют цвет, но новая страница не загружается.Если я буду кодировать свои ссылки с помощью javascript следующим образом - тогда они будут работать.

<a href='http://x/' onClick="window.location = this.href">link there</a>

Есть ли один лайнер Objective-C, позволяющий переходить по ссылкам внутри веб-просмотров?другая проблема, о которой я не знаю здесь?

Ответы [ 2 ]

6 голосов
/ 17 сентября 2011

Ссылки в верхней части Gmail открываются в новом окне.Чтобы заставить их работать, вы должны реализовать как минимум методы WebUIDelegate webView:createWebViewWithRequest: и webViewShow:.Если вы просто хотите открыть все ссылки в одном веб-представлении, вы можете вернуть его с webView:createWebViewWithRequest: вместо создания новой.

0 голосов
/ 17 сентября 2011

Оказывается, это потому, что у меня был код, который я скопировал из Интернета с какой-то пользовательской функцией, чтобы игнорировать WebPolicyDecisionListener ...

Извините, что задал вопрос, не предоставив всех подробностей - все это цель-c нова дляя, я не знаю, какие биты делают то, что еще.Я делаю некоторые указания и нажатия, а затем немного кодирования - я не знаю точно, как это все связывает.С другими языками у вас есть целая программа в одном месте - для того, чтобы привыкнуть, требуется немного кривой обучения ... но я отвлекся.

Я исправил, добавив несколько комментариев - см. Код ниже ...

- (void)webView:(WebView *)aWebView 
decidePolicyForNavigationAction:(NSDictionary *)actionInformation 
        request:(NSURLRequest *)request 
          frame:(WebFrame *)frame 
decisionListener:(id < WebPolicyDecisionListener >)listener
{
    if ([self requestIsLinkClick:actionInformation]) {
        if ([@"method" isEqual:[[request URL] scheme]]) {
            SEL selector = NSSelectorFromString([[request URL] resourceSpecifier]);
            if ([prototypeDelegate respondsToSelector:selector]) {
                [prototypeDelegate performSelector:selector];
            }
        }
        // [listener ignore];
    } // else {
        [listener use];
    //}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...