iOS打开外部应用、浏览器
2015-12-30 15:10
471 查看
1:打开Mail
[csharp] view
plaincopy
NSString *recipients = @"mailto:ysy@flyrise.cn?subject=Hello from California!";
NSString *body = @"&body=It is raining in sunny California!";
NSString *email = [NSString stringWithFormat:@"%@%@", recipients, body];
email = [email stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:email]];
2:打电话
[csharp] view
plaincopy
NSString *num = @"110"; //number为号码字符串
NSString *mobileNumber = [NSString stringWithFormat:@"telprompt://%@", num];
NSLog(@"call phone %@;", mobileNumber);
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:mobileNumber]];
注:上面代码触发后,系统会提示用户是否真的要打电话, 电话结束后,会返回至应用程序,
如果将telprompt修改为:tel 后,点击可直接拨打电话, 但电话结束后,不会返回至应用程序
2:打开Safari
[csharp] view
plaincopy
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.baidu.com"]];
3:打开Messages
[csharp] view
plaincopy
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms://800888"]];
4:打开App Store 某个应用的评价系统
[csharp] view
plaincopy
NSLog(@"%@",[[[SystemGlobalInfo defaultInstance] deviceInfo] applicationId]);
NSString *str = [NSString stringWithFormat: @"itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%@",[[[SystemGlobalInfo defaultInstance] deviceInfo] applicationId]];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];
5:打开App Store 中的某个应用 途中经过Safari
[csharp] view
plaincopy
NSString *appID = @"291586600";
NSString *appUrl = [NSString stringWithFormat:@"http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=%@&mt=8",appID];
NSURL *appStoreUrl = [NSURL URLWithString:appUrl];
[[UIApplication sharedApplication] openURL:appStoreUrl];
6:打开App Store 中的某个应用 直接跳转
[csharp] view
plaincopy
NSString *urlString = @"http://itunes.apple.com/us/app/ye-wu-xie-zuo-ping-tai/id507704613?mt=8&uo=4";
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]] ;
7:打开谷歌Maps进行搜索
[csharp] view
plaincopy
NSString* searchQuery = @"珠海";
searchQuery = [searchQuery stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding];
NSString* urlString = [NSString stringWithFormat:@"http://maps.google.com/maps?q=%@", searchQuery];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]];
8:利用OpenUrl打开第三方应用程序
本文释权了打开的方式,很详细.. 地址如下:
http://blog.cnrainbird.com/index.php/2012/06/04/tong_guo_openurl_qi_dong_di_san_fang_app_bing_chuan_can_shu/
这里简单描述一下注意点,
1: A工程 需要打开 B 工程 那么B工程需要在plist文件中 进行UrlType的注册
2:在启动其他第三方应用程序之前,可以通过如下代码判断,应用程序是否已经安装在iPhone中.
[csharp] view
plaincopy
NSURL *url = [NSURL URLWithString:@"AppMessageDemo:11"];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
[[UIApplication sharedApplication] openURL:url];
}else {
[ShareCode Msg:@"没安装"];
}
3: B工程被打开时,请使用如下委托处理打开的消息
[csharp] view
plaincopy
-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
NSLog(@"%@",[url path]);
NSLog(@"%@",sourceApplication);
NSLog(@"%@",annotation);
return NO;
}
下面这个委托,也就是微文中提到的委托,已经被苹果弃用
[csharp] view
plaincopy
-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
NSLog(@"123");
return [WXApi handleOpenURL:url delegate:self];
}
注: sourceApplication 表示 App plist文件中标明的 Bundle identifier
至于返回YES,还是返回NO,似乎没有发生任何事情,待继续考证.
9:为应用设置首选项功能
创建:
[csharp] view
plaincopy
NSString *recipients = @"mailto:ysy@flyrise.cn?subject=Hello from California!";
NSString *body = @"&body=It is raining in sunny California!";
NSString *email = [NSString stringWithFormat:@"%@%@", recipients, body];
email = [email stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:email]];
2:打电话
[csharp] view
plaincopy
NSString *num = @"110"; //number为号码字符串
NSString *mobileNumber = [NSString stringWithFormat:@"telprompt://%@", num];
NSLog(@"call phone %@;", mobileNumber);
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:mobileNumber]];
注:上面代码触发后,系统会提示用户是否真的要打电话, 电话结束后,会返回至应用程序,
如果将telprompt修改为:tel 后,点击可直接拨打电话, 但电话结束后,不会返回至应用程序
2:打开Safari
[csharp] view
plaincopy
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.baidu.com"]];
3:打开Messages
[csharp] view
plaincopy
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms://800888"]];
4:打开App Store 某个应用的评价系统
[csharp] view
plaincopy
NSLog(@"%@",[[[SystemGlobalInfo defaultInstance] deviceInfo] applicationId]);
NSString *str = [NSString stringWithFormat: @"itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%@",[[[SystemGlobalInfo defaultInstance] deviceInfo] applicationId]];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];
5:打开App Store 中的某个应用 途中经过Safari
[csharp] view
plaincopy
NSString *appID = @"291586600";
NSString *appUrl = [NSString stringWithFormat:@"http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=%@&mt=8",appID];
NSURL *appStoreUrl = [NSURL URLWithString:appUrl];
[[UIApplication sharedApplication] openURL:appStoreUrl];
6:打开App Store 中的某个应用 直接跳转
[csharp] view
plaincopy
NSString *urlString = @"http://itunes.apple.com/us/app/ye-wu-xie-zuo-ping-tai/id507704613?mt=8&uo=4";
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]] ;
7:打开谷歌Maps进行搜索
[csharp] view
plaincopy
NSString* searchQuery = @"珠海";
searchQuery = [searchQuery stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding];
NSString* urlString = [NSString stringWithFormat:@"http://maps.google.com/maps?q=%@", searchQuery];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]];
8:利用OpenUrl打开第三方应用程序
本文释权了打开的方式,很详细.. 地址如下:
http://blog.cnrainbird.com/index.php/2012/06/04/tong_guo_openurl_qi_dong_di_san_fang_app_bing_chuan_can_shu/
这里简单描述一下注意点,
1: A工程 需要打开 B 工程 那么B工程需要在plist文件中 进行UrlType的注册
2:在启动其他第三方应用程序之前,可以通过如下代码判断,应用程序是否已经安装在iPhone中.
[csharp] view
plaincopy
NSURL *url = [NSURL URLWithString:@"AppMessageDemo:11"];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
[[UIApplication sharedApplication] openURL:url];
}else {
[ShareCode Msg:@"没安装"];
}
3: B工程被打开时,请使用如下委托处理打开的消息
[csharp] view
plaincopy
-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
NSLog(@"%@",[url path]);
NSLog(@"%@",sourceApplication);
NSLog(@"%@",annotation);
return NO;
}
下面这个委托,也就是微文中提到的委托,已经被苹果弃用
[csharp] view
plaincopy
-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
NSLog(@"123");
return [WXApi handleOpenURL:url delegate:self];
}
注: sourceApplication 表示 App plist文件中标明的 Bundle identifier
至于返回YES,还是返回NO,似乎没有发生任何事情,待继续考证.
9:为应用设置首选项功能
创建:
相关文章推荐
- IOS 学习blog
- iOS开发拓展篇—音频处理(音乐播放器6)
- iOS开发 第一天 创建HelloWorld
- iOS中JSONModel的使用
- IOS开发 - TextField 控件详细
- iOS中AutoLayer自动布局流程及相关方法
- iOS开发-进阶: NSNotificationCenter 通知机制简介
- IOS-自动布局详解
- iOS后台运行机制详解(二)
- iOS7之后的各种bar和布局
- iOS Crash文件的解析(一)
- iOS开发之蓝牙业务封装
- iOS开发ARC入门和使用
- BLE Peripheral设备的名字显示错误
- ios Xcode工程使用CocoaPods管理第三方库新建工程时出现异常
- iOS 页面间几种传值方式(属性,代理,block,单例,通知)
- iOS - CAReplicatorLayer 的运用
- ios 7 statusbar 状态栏 跟随navigationbar的颜色而改变
- 2015最新苹果开发者账号(99$)申请流程
- iOS9搜索三剑客之CoreSpotlight