Подтвердить что ты не робот

Откройте Mobile Safari из ссылки в WebView

Существует ли схема URI для открытия Mobile Safari для определенного URL?

например.

<a href="safari://open_url/?url=google.com">Open Google in Safari</a>
4b9b3361

Ответ 1

Обновление: Таким образом, с iOS 6.0.2 по-прежнему не существует схемы URL, специфичной для MobileSafari (см. Ниже). Однако Federico Viticci опубликовал интересный хак, который позволит вам вызывать Safari из Chrome для iOS. Это не так функционально, как букмарклет Chrome-to-Safari, но он показывает, что можно запустить MobileSafari из Chrome для iOS.

Оригинальный ответ: Оказывается, вы не можете открыть ссылку в Safari, используя только схему URI. Гиперссылки в других приложениях можно открыть в Safari с помощью openURL (см. Другие ответы), но для самой MobileSafari нет схемы (которая вам понадобится, если вам нужно открыть ссылку в Safari, используя гиперссылку в Chrome или Opera для iOS).

Google Chrome имеет следующие две схемы URI: googlechrome:// и googlechromes:// (для HTTPS), которые работают так же, как любая другая конкретная программа (например, dayone://, things:// или sms://).

Ответ 2

Попробуйте следующее:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.google.com/"]];

Ответ 3

Хорошо, я понимаю, что понимаю, о чем вы просите.

Попросите класс реализовать протокол UIWebViewDelegate. Внедрить метод

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

Этот метод вызывается каждый раз, когда пользователь нажимает ссылку в вашем веб-просмотре. Вы можете получить URL-адрес, который пользователь нажал, чтобы проверить параметр request. Затем вы можете перехватить любые ссылки, которые хотите открыть в мобильном Safari, а не внутри вашего веб-браузера, а затем вызвать -openURL: в общем приложении, как в моем другом ответе.

[[UIApplication sharedApplication] openURL:URLFromRequest];

Ответ 4

Вы также можете использовать webkit javascript bridge https://github.com/marcuswestin/WebViewJavascriptBridge

Это позволяет отправлять сообщения с javascript на xcode. Я использую это, чтобы закрыть webview со страницы html:

self.bridge = [WebViewJavascriptBridge bridgeForWebView:self.webView handler:^(id data, WVJBResponseCallback responseCallback) {
            NSLog(@"Received message from javascript: %@", data);
            if ([data isEqual:@"closewin!"])
                [self dismissModal];
        }];

но вы также можете использовать его для перехода на сафари или все, что хотите.