Как использовать [[UIApplication sharedApplication] openURL:] открыть другое приложение?

#iphone #uiapplication #openurl

#iPhone #uiapplication #openurl

Вопрос:

Я последовал http://iosdevelopertips.com/cocoa/launching-your-own-application-via-a-custom-url-scheme.html инструкция по открытию приложения 1 (GlassButton) в приложении 2 (FontTest).

Открыть метод FontTest следующим образом:

 -(void)open {

  BOOL res = [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"glassbutton://"]];

  if (res) {

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

  }

}
  

Значение «res» равно «YES», но после вызова метода openURL ничего не происходит.
Информационный список «FontTest» выглядит следующим образом:

 URL Schemes: glassbutton

URL identifier: com.yourcompany.glassbutton
  

Я пытался открыть приложения Twitter и facebook с помощью «twitter: //» и «fb: //» успешно. Но я не знаю, почему я не могу открыть это маленькое приложение. Я не уверен, что какая-либо вещь / шаг неправильный или отсутствует? Нужно ли мне обрабатывать - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url для FontTest, если да, то как с этим справиться? Не могли бы вы, пожалуйста, любезно помочь мне? Заранее спасибо!

Комментарии:

1. Скажем, если glassbutton — это схема URL для другого приложения, тогда почему вы объявляете ее в FontTest ‘s info.plist . Это неправильно.

2. Привет, Дипак, спасибо, что напомнил.

Ответ №1:

Чтобы запросить запуск вашего приложения, используйте что-то вроде этого:

 NSString *urlString= @"glassbutton://com.yourcompany.glassbutton";
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]];
  

Затем в приложении glassbutton вам нужно будет обработать любое специальное поведение в методе делегирования приложения:

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

    //your app specific code here for handling the launch

    return YES;
 }
  

Обратите внимание, что в открываемом вами приложении вышеупомянутый метод делегирования будет вызван только ПОСЛЕ вызова следующего метода:

  - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
  

Обрабатывайте соответственно, удачи.

Комментарии:

1. NSString *urlString= @»glassbutton://com.yourcompany.glassbutton»;

2. Кстати, что такое glassbutton?

3. Это была схема URL, упомянутая в исходном вопросе. Лучше всего предположить, что это была конкретная ссылка на рассматриваемое приложение или компанию, его производящую — вы можете указать свою схему URL по желанию в соответствующем разделе информационного списка вашего приложения.