OpenURL — многие приложения пытаются открыть приложение «А». Найдите источник, который открыл приложение A

Я использую OpenURL из многих приложений для открытия приложения A. Я хотел бы знать исходное приложение, которое открыло приложение A. Есть ли способ его найти?

Скажем, у меня есть следующие приложения, открывающие приложение Messenger с помощью кода

UIApplication.sharedApplication().openURL(NSURL(string: "messenger://receiveMedia")!)

  • Фотографии (через которые я могу делиться изображениями)
  • WhatsApp (через который я могу обмениваться текстом или изображениями)
  • Инстаграм

Теперь я хочу выяснить, какое из упомянутых выше приложений открыло Messenger. Есть ли способ отличить источник?


person Manju Basha    schedule 26.08.2016    source источник
comment
Когда application:openURL:options: вызывается, его словарь options будет содержать ключ UIApplicationLaunchOptionsSourceApplicationKey, который будет иметь значение пакета исходного приложения. Это то, что вы ищите?   -  person Losiowaty    schedule 26.08.2016
comment
Что-то вроде. Я хочу знать название приложения, чем комплект   -  person Manju Basha    schedule 26.08.2016
comment
Возможно, вам помогут решения отсюда — stackoverflow. com/questions/14023618/ Ссылка в вопросе — это верная вещь, если вы не против спросить у сервера имя.   -  person Losiowaty    schedule 26.08.2016
comment
Большое спасибо за быстрый ответ Losiowaty. Это все еще не работает. let appName = NSBundle.mainBundle().infoDictionary?[sourceApplication!] as? String дает только ноль и не дает имени.   -  person Manju Basha    schedule 26.08.2016
comment
А, я вижу путаницу. Некоторые из ответов на самом деле неправильно поняли ОП. Вы должны посмотреть на те, у которых есть bundleWithIdentifier, например, второй фрагмент кода здесь: stackoverflow.com/a/14023717/765298. Тем не менее, по-прежнему кажется, что запрос itunes.apple.com/lookup?bundleId=com. bundle.id, как указано в вопросе, будет вашим лучшим вариантом.   -  person Losiowaty    schedule 26.08.2016