Открытая ссылка в приложении UIWebview, а не в приложении UIShared - PullRequest
0 голосов
/ 01 июля 2011

Я с трудом пытался открыть ссылки, которые пользователь нажимает в простом веб-представлении вместо многозадачности и перехода в сафари. Моим пользователям очень больно покидать приложение каждый раз, когда нажимают на ссылку, и я знаю, что это, вероятно, довольно просто, но я до сих пор переживаю ужасные времена, когда это происходит. Вот код, который я использую, но при нажатии на ссылку открывается Safari.

Если кто-нибудь может помочь мне направить меня в правильном направлении, я был бы очень признателен! Спасибо!

     - (void) handleURL:(NSURL*)url
    {  
    [web loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"%@"]]];
    }


    - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest 
*)request  
    navigationType:(UIWebViewNavigationType)navigationType {
    NSLog(@"expected:%d, got:%d", UIWebViewNavigationTypeLinkClicked, navigationType);
    if (navigationType == UIWebViewNavigationTypeLinkClicked) {
    [UIApplication sharedApplication] ;
    return NO;
    }
    if (navigationType == UIWebViewNavigationTypeLinkClicked) {    
   [web loadRequest:[NSURLRequest requestWithURL:[NSURL 
    URLWithString:replyTweetText.text]]];    
    return YES;
    }

    }

1 Ответ

0 голосов
/ 01 июля 2011

Я не уверен, что делает этот бит:

if (navigationType == UIWebViewNavigationTypeLinkClicked) {
    [UIApplication sharedApplication] ;
    return NO;
    }

Строка [UIApplication sharedApplication]; создает и возвращает экземпляр одноэлементного приложения. Вы ничего с этим не делаете.

Кроме того, оба оператора if идентичны, поэтому будет применен только первый из них, и метод вернет NO. Нет возвращаемого значения по умолчанию, что плохо для не пустых функций. Попробуйте вместо этого:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
    return YES;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...