你的位置:首页 > 软件开发 > 操作系统 > ios 一个app启动另一个app

ios 一个app启动另一个app

发布时间:2016-08-16 01:00:07
问题描述:需要从一个ios应用程序中,能启动另一个ios应用程序。开发环境:xcode7.3.1关键词:白名单(LSApplicationQueriesSchemes)、注册自己的URLDemo源代码链接:http://pan.baidu.com/s/1bo327sb ...

ios 一个app启动另一个app

问题描述:需要从一个ios应用程序中,能启动另一个ios应用程序。

开发环境:xcode7.3.1

关键词:白名单(LSApplicationQueriesSchemes)、注册自己的URL

Demo源代码链接:http://pan.baidu.com/s/1bo327sb

 

    如何从一个app中,启动另一个app???本人ios菜鸟(工作需要,刚开始自学ios,现学现卖,哈哈)参考网上若干文章,实现了这个功能。目前,将demo分享出来。

1.注册自己的URL

    新建一个工程MyAppOne,在info.plist 文件中添加字段,注册 MyAppOne的URL.

1.1在 Information Property List中,点击“+” 添加 URL types,添加一个Item,再在Item中,添加“URL Schemes”,再在URL Schemes的Item中,添加一个字符串“AppDemo1”(参考下图),该字符串 即为 当前 工程 MyAppOne 自己 为自己注册的 URL。注册自己的URL完成。

1.2我们刚才注册的自己的URL,就相当于我们当前的工程MyAppOne的一个身份标识。其他app通过ios提供的接口(后面会介绍是ios 的哪个函数),调用这个URL就能启动我们这个MyAppOne应用程序了。

ios 一个app启动另一个app

 

2. 白名单 LSApplicationQueriesSchemes

      在ios9以后,需要在info.plist文件中添加 LSApplicationQueriesSchemes(白名单),才能合法启动你想要启动的那个app。白名单中添加的,是你想要启动的app的 URL(这个URL就是上面讲解的“注册自己的URL”)。

2.1 添加 LSApplicationQueriesSchemes。(当前的工程是xcode7.3.1,xcode没有自动匹配 LSApplicationQueriesSchemes,因此,需要你手动输入这个字段,并将它的属性改为【Array】),在 LSApplicationQueriesSchemes 中添加“AppDemo2”。

我们假设已经有一个MyAppTwo,它注册的URL是 AppDemo2。我们想在MyAppOne工程去启动的MyAppTwo这个app,就需要在白名单中添加MyAppTwo的URL。

 ios 一个app启动另一个app

3.MyAppOne 启动 另一个App的关键代码

3.1 字符串AppDemo2后面的 "://"是必须添加的,否则会 无法打开你指定的app的URL的。

3.2 代码介绍了 无参URL和有参URL。如果想传递参数,在“://”后面附加这些参数即可。

 1 //// 用户 按下 按钮********* 请参考 ViewController.m 文件中的代码 2 - (IBAction)Btn1Click:(id)sender { 3   NSLog(@"MyAppOne: You click the button1111."); 4   char szbuff[50] = {0}; 5   sprintf(szbuff, "%s", "AppDemo2://userName=heliang&pwd=20160812"); 6   /// 1.不带参数的传递方式 7   //  NSURL* urlLocal = [NSURL URLWithString:@"AppDemo2://"]; 8   /// 2.带参数的传递方式 9   NSURL* urlLocal = [NSURL URLWithString:[NSString stringWithUTF8String:szbuff]];10   11   // 判断是否可以启动该 url12   if([[UIApplication sharedApplication] canOpenURL:urlLocal])13   {14     [[UIApplication sharedApplication] openURL:urlLocal];15     NSLog(@"launch AppDemo2 success!");16   }17   else18   {19     NSLog(@"No such url.");20     /// 跳到 appStore 某个 app21     NSURL* urlAppStore = [NSURL URLWithString:@"https://itunes.apple.com/cn/app/tie-lu12306/id564818797?mt=8"];22     [[UIApplication sharedApplication] openURL: urlAppStore];23   }24 }

原标题:ios 一个app启动另一个app

关键词:IOS

IOS
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。