App 跳转

#Safari 跳转到 App

如果想要从 Safari 跳转到指定的 App,那么就需要在 App 中定义一个特殊的表示,也就是一个URL协议。定义URL协议如下图 Targets -> info -> URL Types -> 添加一个URL协议。

URL icon

如图,其中 URL Schemes 字段就是这个 App 的特殊标示,而 identifier 字段是这个URL协议的标示。(一个App可以拥有多个URL)。下面两个字段可以为空。

现在再运行 App,打开 Safari,在浏览器中输入:appABC://,然后回车后就会跳转到App了。

在 AppDelegate.m 中实现如下方法:

1
2
3
4
5
6
- (BOOL)Application:(UIApplication *)Application handleOpenURL:(NSURL *)url
{
NSLog(@"%@ %@", NSStringFromSelector(_cmd), url);

return YES;
}

这个方法是系统自动调用的,意思是:如果 App 可以通过 openURL 打开自动调用此方法。而参数 URL 就是打开 App 的特定 URL。也就是上面的 AppABC://。可以在 appABC:// 后面加上任何想要的字符串参数,例如,appABC://name:wanghei//name:lilei,就可以传输字符串了。

#App 跳转到
两者原理是一样的,从 Safari 跳到 App 是通过特定的URL,那么从 App 跳转到 App 也是一样。[[UIApplication shareApplication] openURL:url]该方法就是用来打开特定 URL 的。参数 url 为被跳转打开的 App 的特定 URL 协议所表示的 URL。

0%