UIWebView ссылки открываются в Safari - PullRequest
6 голосов
/ 26 мая 2011

Я хочу открыть ссылку iTunes в моем webView, но когда webView запускает страницу, он перенаправляется в браузер Safari.Там открывается URL-адрес, но я хочу, чтобы он открывался в моем веб-представлении.

- (void)viewDidLoad {

    NSString *urlAddress = @"http://itunes.apple.com/us/app/foodcheck-traffic-light-nutrition/id386368933?mt=8";

    //Create a URL object.
    NSURL *url = [NSURL URLWithString:urlAddress];

    //URL Requst Object
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];

    //Load the request in the UIWebView.
    [webView loadRequest:requestObj];

    [super viewDidLoad];
}

Пожалуйста, предложите способ решения этой проблемы.

Ответы [ 3 ]

1 голос
/ 26 мая 2011

Примечание из справочной документации Apple. В: Как запустить App Store из приложения для iPhone? Кроме того, как я могу сделать ссылку на мое приложение в магазине?

Примечание: если у вас есть ссылки iTunes внутри UIWebView, вы можете использовать это техника после перехвата ссылок с -[UIWebViewDelegate webView:shouldStartLoadWithRequest:navigationType:] метод делегата.

1 голос
/ 26 мая 2011

Вы можете попытаться зарегистрировать запросы на загрузку при запуске приложения.Возможно, что яблоко автоматически меняет http:// на itms-apps или http://phobos или что-то в этом роде.Если так, то вы можете заблокировать загрузку при вызове, используя что-то вроде этого:

- (BOOL)webView:(UIWebView *)webView 
shouldStartLoadWithRequest:(NSURLRequest *)request 
 navigationType:(UIWebViewNavigationType)navigationType;
{   
    NSURL *loadURL = [[request URL] retain];
    NSLog(@"%@",loadURL);
    if([[loadURL absoluteString] hasPrefix:@"http://"])
    {
        [loadURL release]; 
        return TRUE;
    }
    [loadURL release];
    return FALSE;
}

Удачи.Мне любопытно узнать, что наконец работает.

0 голосов
/ 17 июня 2014

Не уверен, что вы когда-нибудь работали, но у меня это хорошо работает:

NSString *responseString = [NSString stringWithContentsOfURL:myURL];
[self.webView loadHTMLString:responseString baseURL: nil)];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...