ios synchronizefile

最近要在IOS中实现一个应用启动另外一个应用的功能,搜了一些资料,使用UIApplication的openURL:的方法就能实现,现在整理和大家分享一下!


  注册自定义URL协议


  首先被启动的应用需要向iPhone注册一个自定义URL协议。这是在你的项目文件夹的info.plist文件进行的(就是你改变应用程序图标的同一个文件)。

  Step1. 右键,选择“Add Row”Step2. Key值选择“URL types”

  Step3. 打开“Item 0″,然后为该key增加一个URL identifier。可以是任何值,但建议用“反域名”(例如 “com.fcplayer.testHello”)。

  Step4. 在“Item 0”下再加一行。

  Step5. 选择“URL Schemes” 作为Key。

  Step6. 输入你的URL协议名 (例如“testHello://” 应写做“testHello”)。如果有必要,你可以在这里加入多个协议。

  操作截图如下:

  访问自定义URL


  在主应用程序中通过访问自定义URL启动另外一个应用:


  


  [csharp] view plaincopy

  NSURL * myURL_APP_A = [NSURL URLWithString:@"testHello://"];

  if ([[UIApplication sharedApplication] canOpenURL:myURL_APP_A]) {

  NSLog(@"canOpenURL");

  [[UIApplication sharedApplication] openURL:myURL_APP_A];

  }

  


  


  自定义处理URL


  有些时候我们除了启动还需向另外一个应用发送参数,这是也可以通过自定义的URL来实现,如:


  testHello://

  testHello://com.fcplayer.testHello

  testHello://config=1&abar=2


  这时我们在被启动应用中就必须进行自定义处理,在delegate中实现该消息(Cocos2d加在AppDelegate中),例如:

  - (BOOL)application:(UIApplication *)applicationhandleOpenURL:(NSURL*)url {   // Do something withthe url here }


  通常,我们会从参数中解析出URL以便在视图中显示或者存储到UserPreference。下面的例子把URL存储为User Preference的url变量中或者打印出来:


  


  [csharp] view plaincopy

  -(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url

  {

  if (!url) {  return NO; }

  NSString *URLString = [url absoluteString];

  NSLog(@"%@",URLString);

  //[[NSUserDefaults standardUserDefaults] setObject:URLString forKey:@"url"];

  //[[NSUserDefaults standardUserDefaults] synchronize];

  return YES;

  }

  


  其他


  基本上至此我们就已经实现一个应用程序中启动另外一个应用的功能,但是为了是我们的代码更加强壮,我在网上又找了一段访问代码,如下:


  


  [csharp] view plaincopy

  // 检查用户是否配置了AppId

  // 有没有准确配置Info的CFBundleURLSchemes字段

  // 是不是可以正确打开

  if (!kAppId) {

  UIAlertView *alertView = [[UIAlertView alloc]

  initWithTitle:@"Setup Error"

  message:@"Missing app ID. You cannot run the app until you provide this in the code."

  delegate:self

  cancelButtonTitle:@"OK"

  otherButtonTitles:nil,

  nil];

  [alertView show];

  [alertView release];

  } else {

  // Now check that the URL scheme fb[app_id]://authorize is in the .plist and can

  // be opened, doing a simple check without local app id factored in here

  NSString *url = [NSString stringWithFormat:@"fb%@://authorize",kAppId];

  BOOL bSchemeInPlist = NO; // find out if the sceme is in the plist file.

  NSArray* aBundleURLTypes = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleURLTypes"];

  if ([aBundleURLTypes isKindOfClass:[NSArray class]] &&

  ([aBundleURLTypes count] > 0)) {

  NSDictionary* aBundleURLTypes0 = [aBundleURLTypes objectAtIndex:0];

  if ([aBundleURLTypes0 isKindOfClass:[NSDictionary class]]) {

  NSArray* aBundleURLSchemes = [aBundleURLTypes0 objectForKey:@"CFBundleURLSchemes"];

  if ([aBundleURLSchemes isKindOfClass:[NSArray class]] &&

  ([aBundleURLSchemes count] > 0)) {

  NSString *scheme = [aBundleURLSchemes objectAtIndex:0];

  if ([scheme isKindOfClass:[NSString class]] &&

  [url hasPrefix:scheme]) {

  bSchemeInPlist = YES;

  }

  }

  }

  }

  // Check if the authorization callback will work

  BOOL bCanOpenUrl = [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString: url]];

  if (!bSchemeInPlist || !bCanOpenUrl) {

  UIAlertView *alertView = [[UIAlertView alloc]

  initWithTitle:@"Setup Error"

  message:@"Invalid or missing URL scheme. You cannot run the app until you set up a valid URL scheme in your .plist."

  delegate:self

  cancelButtonTitle:@"OK"

  otherButtonTitles:nil,

  nil];

  [alertView show];

  [alertView release];

  }

  }

  


  另外还有一段启动其他应用的代码:


  


  [csharp] view plaincopy

  -(IBAction)openMaps {//打开地图

  // Where is Apple on the map anyway?

  NSString* addressText = @”1 Infinite Loop, Cupertino, CA 95014″;

  // URL encode the spaces

  addressText =  [addressText stringByAddingPercentEscapesUsingEncoding: NSASCIIStringEncoding];

  NSString* urlText = [NSString stringWithFormat:@"http://maps.google.com/maps?q=%@", addressText];

  // lets throw this text on the log so we can view the url in the event we have an issue

  NSLog(urlText);

  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlText]];

  }

  -(IBAction)openEmail {//打开mail

  // Fire off an email to apple support

  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mailto://devprograms@apple.com"]];

  }

  -(IBAction)openPhone {//拨打电话

  // Call Google 411

  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://8004664411"]];

  }

  -(IBAction)openSms {//打开短信

  // Text to Google SMS

  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms://466453"]];

  }

  -(IBAction)openBrowser {//打开浏览器

  // Lanuch any iPhone developers fav site

  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://itunesconnect.apple.com"]];

  }

喜欢阅读
  • 绝品医狂

    绝品医狂

    被上司骂,被女友甩!苦逼屌丝青年意外捡到上古医仙残魂一枚。医院:这个病我们没法治;主角:放着我来。医院:这个病我们要五十万;主角:我只要五千块......

  • 圣眼隐瞳

    圣眼隐瞳

    少年陆沉,遭女友背叛,偶得透视眼,玩赌石,品古董,包治百病?过时了,我的透视还能看穿他人的心思!从此陆沉一入风云变化龙。

  • 亿万总裁的天价逃妻

    亿万总裁的天价逃妻

    一个陌生男人冲进顾宜人的包厢,如同原野的野兽,猛然压住顾宜人娇小的身躯,霸道掠取她的唇瓣,顾宜人拔下头上的樱花簪子,狠狠扎向男人,男人吃痛却牢牢禁锢住她。顾宜人用簪子抵在男人脆弱的喉咙,“让我出去,否则我不介意让你命丧当场,我是学医的。” “嗬。”男人玩味的笑笑,“你还是第一个敢这么对我的女人,我记住你了。”

  • 超能悍兵

    超能悍兵

    高大帅气的特种兵楚飞开着粉红色法拉利疾驰在三环路上,帮助一位被追踪的姑娘逃脱黑衣人的追捕,可车上却被安装的跟踪器,面对几十个黑衣人,他们究竟该如何逃脱呢?

  • 诸道九论

    诸道九论

    五胡乱华末期,匈奴、鲜卑、羯、氐、羌五族被太武帝逼退华夏,五族心有不甘,使用异咒欲召唤五胡妖兽—谛柯摩反击中原,被佛教、道教、儒教、俗教、礼教、艺教、言教、玄教,这八教之掌教,联手使用门中法器封印。数百载后,八教理念冲突,难以共存于世。道教算出日后八教存世者不及半数,恰又逢封印妖兽谛柯摩之法器灵力殆尽,需寻求新的法器代替。诸教商论,欲再度封印妖兽,以寻求新法器之行,为苍生福祉贡献多少位论,决定八教存世。

  • 错爱前缘

    错爱前缘

    世人都说叶少心狠手辣,无心无情,却不曾知道。他的温柔,从来只许她一人。

  • 殇情难回首

    殇情难回首

    汪晓泉用辛辛苦苦两个月赚的钱救了个从街边捡回来的醉汉。一转脸,自己居然成了“仙人跳”讹诈他的小人。谁知就是这个“小人”会跟自己纠缠不清?自己参加的比赛,人家主办的;自己被算计,人家相救的;自己被男朋友甩,人家设计的——呃,这个算吗?当误会在不觉间已成深情,却因突然的变故触礁。她该走向何方?那个默默爱她多年的人,她又将如何相处?

  • 家有农妻喜种田

    家有农妻喜种田

    一觉醒来柳絮就发现自己穿越了,别人是公主后妃,千金小姐,她就是一没爹没娘还被二叔二婶一家压榨的小可怜,还被堂妹夺了亲事,于是原主一命呜呼了,柳絮叹息,既然如此,我命由我不由天,她可不是原主,她的人生她自己决定,不求大富大贵,只求一生平安,找到一个真心疼爱自己的人,再生两个孩子,这就是她要的完美人生。

  • 猜你喜欢
  • 热门推荐
  • 世纪战元mp4下载
  • man dap oyla 歌词
  • 拉链帽衫
  • tale of tales剧情
  • gt s5360
  • 黑木琴音作品名
  • 机械师2 720p
  • 生岛凉日本名字
  • 查询邮编 上海
  • macbook指纹解锁
  • mas mac os
  • 韩国青龙奖
  • 来宾广告公司
  • 圣斗士星矢电影真人版
  • typescript tsc w
  • 电脑网卡开机自动禁用
  • icmp目标不可达
  • 御女心经 无删减
  • 锐捷无线ap配置命令
  • 家电数码
  • All Right Reserved 果粒网