你可以使用openUrl打开一些程序,不只是浏览器,我们将在下面的例子中演示这些这些应用:
- 打开浏览器
- 打开google map
- 打开email
- 拨号程序
- 发短信程序
- 打开appstore
Launch Google Maps
到googlemap的URL格式是:
http://maps.google.com/maps?q=${QUERY_STRING}
你可以更改QUERY_STRING改变位置信息:
NSString* searchQuery = @"the postion I want to know"; searchQuery = [searchQuery stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]; |
打开Apple Mail
格式:
mailto://${EMAIL_ADDRESS}
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mailto://info@iphonedevelopertips.com"]];
拨打电话(iPhone Only)
格式:
tel://${PHONE_NUMBER}
1 |
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://8004664411"]]; |
发短信
格式
sms:${PHONENUMBER_OR_SHORTCODE}
1 |
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms:55555"]]; |
打开app store
打开appstore的程序位置,右键点击程序图标获取url
格式如下:
http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=291586600&mt=8
1 2 |
NSURL *appStoreUrl = [NSURL URLWithString:@"http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=291586600&mt=8"]; [[UIApplication sharedApplication] openURL:appStoreUrl]; |
如何点击一个程序调用起来另一个程序的方法
调用程序A 被调用程序 B
A中要设置一些调用的信息
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[self performSelector:@selector(launchMe) withObject:nil afterDelay:0.0];
[window makeKeyAndVisible];
return YES;
}
- (void)launchMe
{
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"abc://"]];
}
************
其中abc是被调用程序B的bundle id 如: com.yourcompany.abc 后面的://是必定要加的格式
B中要修改plist文件的配置信息
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLName</key>
<string>com.yourcompany.abc</string>
<key>CFBundleURLSchemes</key>
<array>
<string>abc</string>
</array>
</dict>
</array>
如图所示 info配置截图
检测iphone是否安装有某个程序,或者打开某个程序openURL CanOpenURL
[问题描述]
1:在程序B中检测手机中是否安装A程序.
2:在程序B中打开应用程序A.
[解决办法]
步骤一:
首先在程序A的plist中添加url types
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLName</key>
<string>AAAAA</string>
<key>CFBundleURLSchemes</key>
<array>
<string>testA</string>
</array>
</dict>
</array>
步骤二:
在程序B中调用A程序的地方添加代码
NSURL * myURL_APP_A = [NSURL URLWithString:@"testA://AAAAA"];
if ([[UIApplication sharedApplication] canOpenURL:myURL_APP_A]) {
NSLog(@"canOpenURL");
[[UIApplication sharedApplication] openURL:myURL_APP_A];
}
在iPhone中,可以直接用UIApp打开URL地址。如下所示:
[ UIApp openURL: [ NSURL URLWithString:@"http://www.apple.com" ] ];
或者:
[ UIApp openURL: [ NSURL URLWithString:@"mailto:apple@mac.com?Subject=hello" ] ];
与此同时,iPhone还包含一些其他除了http://或者mailto:之外的URL:
sms:// 可以调用短信程序
tel:// 可以拨打电话
itms:// 可以打开MobileStore.app
audio-player-event:// 可以打开iPod
audio-player-event://?uicmd=show-purchased-playlist 可以打开iPod播放列表
video-player-event:// 可以打开iPod中的视频