什么是移动野生动物园的自定义URL方案?



iOS URL方案允许网站像这样启动应用程序:

  • twitter://timeline推出Twitter
  • googlechrome://google.com启动Chrome
  • fb://root推出Facebook
  • ______________启动Safari?(不是http://,因为Safari不会从UIWebView启动)

什么自定义url方案触发Safari启动(即使从另一个应用程序的UIWebView)?

澄清一下,我不是在寻找[[UIApplication sharedApplication] openURL: request.URL];

相反,我正在寻找一个网站如何允许用户从另一个应用程序(Google Chrome, Twitter等)的UIWebView内启动Mobile 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 Google Chrome中打开此URL,并打开带有链接的Safari。

没有Safari URL方案。如果你在你的html中使用它,你可以检查它。

实现UIWebViewDelegate方法webView:shouldStartLoadWithRequest:navigationType:。对于想要分流到移动safari的请求,返回"NO"。使用请求的URL调用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;
}

相关内容

  • 没有找到相关文章

最新更新