iOS URL Schemes允许网站启动类似的应用程序:
twitter://timeline
推出Twitter googlechrome://google.com
启动Chrome fb://root
推出Facebook ______________
启动Safari? (不是http://
,因为Safari不会从UIWebView
启动)哪种自定义网址方案会触发Safari启动(即使是在另一个应用的UIWebView
内)?
澄清一点,我不是在寻找[[UIApplication sharedApplication] openURL: request.URL];
相反,我正在寻找一个网站如何允许用户从另一个应用程序(谷歌浏览器,推特等)的UIWebView
内启动移动Safari。
弹出打开其他应用的示例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/
尝试在iOS谷歌浏览器中打开this URL并使用链接打开Safari。
答案 0 :(得分:2)
没有Safari网址计划。如果你制作一个并在你的HTML中使用它,你可以检查它。
实施UIWebViewDelegate
方法webView:shouldStartLoadWithRequest:navigationType:
。对于要分流到移动野生动物园的请求,请返回“否”。使用请求的网址UIApplication
openURL
。
这样的事情:
- (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;
}
答案 1 :(得分:-5)
对于任何网络浏览器http://someurl.com
和https://someurl.com
。