Ios 什么是移动Safari';s自定义URL方案?
iOS URL方案允许网站启动以下应用程序:Ios 什么是移动Safari';s自定义URL方案?,ios,mobile-safari,url-scheme,Ios,Mobile Safari,Url Scheme,iOS URL方案允许网站启动以下应用程序: twitter://timeline发布推特 googlechrome://google.com推出Chrome浏览器 fb://root启动Facebook \uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu?(不是http://,因为Safari不会从UIWebView启动) 什么自定义url方案触发Safari启动(
发布推特twitter://timeline
推出Chrome浏览器googlechrome://google.com
启动Facebookfb://root
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu?(不是
,因为Safari不会从http://
启动)UIWebView
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>
这里有一个相同的例子:
尝试在iOS Google Chrome中打开,并使用链接打开Safari。没有Safari URL方案。如果你制作了一个并在html中使用它,你可以检查它
实现UIWebViewDelegate
方法webView:shouldStartLoadWithRequest:navigationType:
。对于要分流到mobile safari的请求,返回“否”。使用请求的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;
}
启动Safari的唯一方法是使用UIApplication openURL:
并传递http或https URL。这是在应用程序中使用UIWebView
。这与启动mobile Safari正好相反。当您使用openURL
@Adam时,默认情况下,iOS上的所有http URL都会在mobile Safari中打开,除非是从UIWebView
中的另一个应用程序启动。您找到了解决方案吗?我在Facebook inApp浏览器上也遇到了类似的问题,它破坏了我的PayPal结账。。。。所以你不可能在网上用这个。例如,如果我想允许用户从应用程序内的UIWebView进入Mobile Safari。您是否知道UIWebView
s是否支持x-callback-url
?我一直在读关于在不同应用程序之间使用这种切换的黑客的文章。我不是在听你的问题。这是为了突破UIWebView进入Mobile Safari。不我不知道x-callback-url。是的,上面是用于在您控制的应用程序(即您是开发人员)中打开UIWebView的。但这对允许用户突破框架体验的网站不起作用(比如在Twitter的应用程序中——一个他们不控制其源代码的应用程序)。@Ryan你找到解决方法了吗?