Ответ 1
Как для любого веб-браузера, http://someurl.com
и https://someurl.com
.
Схемы URL-адресов iOS позволяют веб-сайтам запускать такие приложения:
twitter://timeline
запускает Twittergooglechrome://google.com
запускает Chromefb://root
запускает Facebook______________
запускает Safari? (не http://
, так как Safari не запускается с UIWebView
)Какая настраиваемая схема URL запускает запуск Safari (даже из другого приложения UIWebView
)?
Чтобы уточнить, я не ищу [[UIApplication sharedApplication] openURL: request.URL];
Вместо этого я ищу, как веб-сайт может позволить пользователю запускать Mobile Safari из UIWebView
другого приложения (Google Chrome, Twitter и т.д.).
Примеры ссылок HTML, которые открывают другие приложения:
<a href="twitter://timeline">Open Twitter</a>
<a href="googlechrome://google.com">Open site in Chrome</a>
<a href="fb://root">Open Facebook</a>
Я ищу что-то похожее на эти неработающие примеры:
<a href="safari://google.com">Open Safari [Doesn't work]</a>
<a href="webkit://google.com">Open Webkit [Doesn't work]</a>
Здесь jsFiddle: http://jsfiddle.net/gXLjF/9/embedded/result/
Попробуйте открыть этот URL в iOS Google Chrome и открыть Safari со ссылками.
Как для любого веб-браузера, http://someurl.com
и https://someurl.com
.
Нет схемы URL-адреса Safari. Если вы сделаете это и используете его в своем html, вы можете проверить его, хотя.
Внедрить метод UIWebViewDelegate
webView:shouldStartLoadWithRequest:navigationType:
. Верните "НЕТ" для запросов, которые вы хотите отключить для мобильных сафари. Вызовите UIApplication
openURL
с URL-адресом запроса.
Что-то вроде этого:
- (BOOL) webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
// all clicked links!
if ( navigationType == UIWebViewNavigationTypeLinkClicked )
{
[[UIApplication sharedApplication] openURL: request.URL];
return NO;
}
// or, custom URL scheme!
if ( [request.URL.scheme isEqualToString: @"my-open-in-safari"] )
{
// remap back to http. untested!
NSURL* url = [NSURL URLWithString: [request.URL.absoluteString stringByReplacingOccurrencesOfString: @"my-open-in-safari" withString: @"http" ]];
[[UIApplication sharedApplication] openURL: url];
return NO;
}
return YES;
}