分享

iphone程序启动互相调用, 打开其他程序

 勤奋不止 2014-11-20

如何点击一个程序调用起来另一个程序的方法
调用程序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中的视频

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多