最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

iOS打开外部应用、浏览器

业界 admin 1浏览 0评论

1:打开Mail 

[csharp]  view plain copy
  1. NSString *recipients = @"mailto:ysy@flyrise?subject=Hello from California!";   
  2. NSString *body = @"&body=It is raining in sunny California!";   
  3. NSString *email = [NSString stringWithFormat:@"%@%@", recipients, body];   
  4.           email = [email stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];   
  5. [[UIApplication sharedApplication] openURL:[NSURL URLWithString:email]];   

2:打电话

[csharp]  view plain copy
  1. NSString *num = @"110"//number为号码字符串  
  2. NSString *mobileNumber = [NSString stringWithFormat:@"telprompt://%@", num];  
  3. NSLog(@"call phone %@;", mobileNumber);  
  4. [[UIApplication sharedApplication] openURL:[NSURL URLWithString:mobileNumber]];  
注:上面代码触发后,系统会提示用户是否真的要打电话, 电话结束后,会返回至应用程序,

     如果将telprompt修改为:tel 后,点击可直接拨打电话, 但电话结束后,不会返回至应用程序

2:打开Safari

[csharp]  view plain copy
  1. [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.baidu"]];  

3:打开Messages

[csharp]  view plain copy
  1. [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms://800888"]];  


4:打开App Store 某个应用的评价系统

[csharp]  view plain copy
  1. NSLog(@"%@",[[[SystemGlobalInfo defaultInstance] deviceInfo] applicationId]);  
  2. NSString *str = [NSString stringWithFormat: @"itms-apps://ax.itunes.apple/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%@",[[[SystemGlobalInfo defaultInstance] deviceInfo] applicationId]];  
  3. [[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];  

5:打开App Store 中的某个应用 途中经过Safari

[csharp]  view plain copy
  1. NSString *appID = @"291586600";  
  2. NSString *appUrl = [NSString stringWithFormat:@"http://phobos.apple/WebObjects/MZStore.woa/wa/viewSoftware?id=%@&mt=8",appID];  
  3. NSURL *appStoreUrl = [NSURL URLWithString:appUrl];  
  4. [[UIApplication sharedApplication] openURL:appStoreUrl];  

6:打开App Store 中的某个应用 直接跳转

[csharp]  view plain copy
  1. NSString *urlString = @"http://itunes.apple/us/app/ye-wu-xie-zuo-ping-tai/id507704613?mt=8&uo=4";  
  2. [[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]] ;  

7:打开谷歌Maps进行搜索

[csharp]  view plain copy
  1. NSString* searchQuery = @"珠海";  
  2. searchQuery = [searchQuery stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding];  
  3. NSString* urlString = [NSString stringWithFormat:@"http://maps.google/maps?q=%@", searchQuery];  
  4. [[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]];  
8:利用OpenUrl打开第三方应用程序

本文释权了打开的方式,很详细.. 地址如下:

http://blograinbird/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 plain copy
  1. NSURL *url = [NSURL URLWithString:@"AppMessageDemo:11"];    
  2. if ([[UIApplication sharedApplication] canOpenURL:url]) {  
  3.      [[UIApplication sharedApplication] openURL:url];   
  4. }else {  
  5.      [ShareCode Msg:@"没安装"];  
  6. }  


3: B工程被打开时,请使用如下委托处理打开的消息

[csharp]  view plain copy
  1. -(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation  
  2. {  
  3.     NSLog(@"%@",[url path]);  
  4.     NSLog(@"%@",sourceApplication);  
  5.     NSLog(@"%@",annotation);  
  6.     return NO;  
  7. }  

下面这个委托,也就是微文中提到的委托,已经被苹果弃用

[csharp]  view plain copy
  1. -(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url  
  2. {  
  3.     NSLog(@"123");  
  4.     return [WXApi handleOpenURL:url delegate:self];  
  5. }  




注: sourceApplication 表示 App plist文件中标明的 Bundle identifier

      至于返回YES,还是返回NO,似乎没有发生任何事情,待继续考证.

9:为应用设置首选项功能

创建: 


  • 上一篇iOS 应用发布
  • 下一篇iOS (ProjectName-info.plist) (ProjectName-Prefix.pch) 解析
0

1:打开Mail 

[csharp]  view plain copy
  1. NSString *recipients = @"mailto:ysy@flyrise?subject=Hello from California!";   
  2. NSString *body = @"&body=It is raining in sunny California!";   
  3. NSString *email = [NSString stringWithFormat:@"%@%@", recipients, body];   
  4.           email = [email stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];   
  5. [[UIApplication sharedApplication] openURL:[NSURL URLWithString:email]];   

2:打电话

[csharp]  view plain copy
  1. NSString *num = @"110"//number为号码字符串  
  2. NSString *mobileNumber = [NSString stringWithFormat:@"telprompt://%@", num];  
  3. NSLog(@"call phone %@;", mobileNumber);  
  4. [[UIApplication sharedApplication] openURL:[NSURL URLWithString:mobileNumber]];  
注:上面代码触发后,系统会提示用户是否真的要打电话, 电话结束后,会返回至应用程序,

     如果将telprompt修改为:tel 后,点击可直接拨打电话, 但电话结束后,不会返回至应用程序

2:打开Safari

[csharp]  view plain copy
  1. [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.baidu"]];  

3:打开Messages

[csharp]  view plain copy
  1. [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms://800888"]];  


4:打开App Store 某个应用的评价系统

[csharp]  view plain copy
  1. NSLog(@"%@",[[[SystemGlobalInfo defaultInstance] deviceInfo] applicationId]);  
  2. NSString *str = [NSString stringWithFormat: @"itms-apps://ax.itunes.apple/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%@",[[[SystemGlobalInfo defaultInstance] deviceInfo] applicationId]];  
  3. [[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];  

5:打开App Store 中的某个应用 途中经过Safari

[csharp]  view plain copy
  1. NSString *appID = @"291586600";  
  2. NSString *appUrl = [NSString stringWithFormat:@"http://phobos.apple/WebObjects/MZStore.woa/wa/viewSoftware?id=%@&mt=8",appID];  
  3. NSURL *appStoreUrl = [NSURL URLWithString:appUrl];  
  4. [[UIApplication sharedApplication] openURL:appStoreUrl];  

6:打开App Store 中的某个应用 直接跳转

[csharp]  view plain copy
  1. NSString *urlString = @"http://itunes.apple/us/app/ye-wu-xie-zuo-ping-tai/id507704613?mt=8&uo=4";  
  2. [[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]] ;  

7:打开谷歌Maps进行搜索

[csharp]  view plain copy
  1. NSString* searchQuery = @"珠海";  
  2. searchQuery = [searchQuery stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding];  
  3. NSString* urlString = [NSString stringWithFormat:@"http://maps.google/maps?q=%@", searchQuery];  
  4. [[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]];  
8:利用OpenUrl打开第三方应用程序

本文释权了打开的方式,很详细.. 地址如下:

http://blograinbird/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 plain copy
  1. NSURL *url = [NSURL URLWithString:@"AppMessageDemo:11"];    
  2. if ([[UIApplication sharedApplication] canOpenURL:url]) {  
  3.      [[UIApplication sharedApplication] openURL:url];   
  4. }else {  
  5.      [ShareCode Msg:@"没安装"];  
  6. }  


3: B工程被打开时,请使用如下委托处理打开的消息

[csharp]  view plain copy
  1. -(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation  
  2. {  
  3.     NSLog(@"%@",[url path]);  
  4.     NSLog(@"%@",sourceApplication);  
  5.     NSLog(@"%@",annotation);  
  6.     return NO;  
  7. }  

下面这个委托,也就是微文中提到的委托,已经被苹果弃用

[csharp]  view plain copy
  1. -(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url  
  2. {  
  3.     NSLog(@"123");  
  4.     return [WXApi handleOpenURL:url delegate:self];  
  5. }  




注: sourceApplication 表示 App plist文件中标明的 Bundle identifier

      至于返回YES,还是返回NO,似乎没有发生任何事情,待继续考证.

9:为应用设置首选项功能

创建: 


  • 上一篇iOS 应用发布
  • 下一篇iOS (ProjectName-info.plist) (ProjectName-Prefix.pch) 解析
0
发布评论

评论列表 (0)

  1. 暂无评论