在iOS中,应用A如果想打开应用B,需要在B工程的info.plist文件中添加URL types字段下面的URL identifier 和 URL Schemes 字段;
比如URL identifier 设置为:com.adsage ; URL Schemes 设置为:myapp;
那么在工程A中可以通过:
UIApplication *app = [UIApplicationsharedApplication];
NSURL *url = [NSURLURLWithString:@"myapp://com.adsage"];
[app openURL:url];
启动应用B。
同样的道理,利用 UIApplication 类的 - (BOOL)canOpenURL:(NSURL *)url 成员方法可以判断是否能启动应用B;
UIApplication *app = [UIApplicationsharedApplication];
NSURL *url = [NSURLURLWithString:@"myapp://com.adsage"];
if ([app canOpenURL:url]) {
NSLog(@"can launch B app!");
}else {
NSLog(@"can not launch B app!");
}
如果能启动应用B,说明已经安装应用B,反之。
不过此方法必须知道应用B(被启动应用) 的URL types属性 。
————————————————————————————————————————
- openURL能帮助你运行Maps,SMS,Browser,Phone甚至其他的应用程序。
- openURL的使用方法:
- [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:myURLString]];
- 自己定义URL,方法如下:
- 打开info.plist,添加一项URL types
- 展开URL types,再展开Item1,将Item1下的URL identifier修改为URL Scheme
- 展开URL Scheme,将Item1的内容修改为myapp
- 或者:
- (增加一下此段设置)
- <key>CFBundleURLTypes</key>
- <array>
- <dict>
- <key>CFBundleURLSchemes</key>
- <array>
- <string>myapp</string>
- </array>
- <key>CFBundleURLName</key>
- <string>com.yourcompany.appName</string>
- </dict>
- </array>
- 其他程序可通过myapp://com.yourcompany.appName
- 可通过[[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"myapp://com.yourcompany.appName"]];
- 来判断用户机器中是否安装了该程序
- 通过- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
- 可以通过处理url来获取信息扫行相应操作。