Существует ли схема URI для открытия Mobile Safari для определенного URL?
например.
<a href="safari://open_url/?url=google.com">Open Google in Safari</a>
Существует ли схема URI для открытия Mobile Safari для определенного URL?
например.
<a href="safari://open_url/?url=google.com">Open Google in Safari</a>
Обновление: Таким образом, с 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://
).
Попробуйте следующее:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.google.com/"]];
Хорошо, я понимаю, что понимаю, о чем вы просите.
Попросите класс реализовать протокол UIWebViewDelegate. Внедрить метод
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
Этот метод вызывается каждый раз, когда пользователь нажимает ссылку в вашем веб-просмотре. Вы можете получить URL-адрес, который пользователь нажал, чтобы проверить параметр request
. Затем вы можете перехватить любые ссылки, которые хотите открыть в мобильном Safari, а не внутри вашего веб-браузера, а затем вызвать -openURL:
в общем приложении, как в моем другом ответе.
[[UIApplication sharedApplication] openURL:URLFromRequest];
Вы также можете использовать 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];
}];
но вы также можете использовать его для перехода на сафари или все, что хотите.