2010-06-03 2 views
3

Я пишу бесплатную версию приложения и хочу проверить, установлена ​​ли у пользователя уже установленная несвободная версия, и распечатать сообщение, содержимое которого зависит от результатов проверки установки ... кто-нибудь знает, если это возможное?Есть ли способ узнать, установлено ли приложение iPhone/iPad уже?

Ближайший я пришел к решению, чтобы использовать API CFPreferencesSetValue с kCFPreferencesAnyUser/kCFPreferencesCurrentHost спаривания ... Я не пробовал, но на основе документации это кажется возможным.

однако в моей конкретной конкретной ситуации этот API не сможет решить мою проблему, потому что я хочу проверить наличие приложения, которое я написал 4 месяца назад, которое не записывало никаких данных в реестр CFPrefs .. потому что в то время я не знал об этом и не думал об этой ситуации, возникающей ... единственный способ, которым CFPrefs может мне помочь, - это в будущих приложениях сейчас, когда я знаю, что он существует :)

, так что мне интересно, есть ли другие способы сделать это? любая помощь будет оценена :)

ответ

-1

К сожалению, нет никакого способа, чтобы приложение не могло найти информацию о любом другом приложении, установленном в iPhone (без джейлбрейка). Apple намеренно изолирует приложения, чтобы они были полностью изолированы.

Лучшая возможная вещь, которую вы могли бы сделать (в будущем) - зарегистрировать обработчик URL, который запустит ваше другое приложение, и, в свою очередь, запустит ваше текущее приложение с параметром.

-дан

+0

Вопреки тому, что вы верите, песочница Безразлично» t скрыть эту информацию. – kennytm

+0

KennyTM, вы можете уточнить? это метод, который обходит песочницу чем-то, что бы ее отклонили на платформе AppReview? – eerok512

+0

@eerok: Это использует частный API (liblockdown или GraphicsServices), поэтому он будет отклонен. – kennytm

3

Согласно this answer, если у вас есть такое же приложение верхнего уровня идентификатор вы можете получить доступ к области данных вашего другого приложения. Я считаю, что идентификаторы id дикой карты также могут делиться данными, см. Раздел provisioning portal docs.

6

Вы можете зарегистрировать настраиваемую схему URL для своего существующего приложения, а затем вызвать canOpenURL в своем новом приложении, чтобы определить, установлено ли приложение.

0

Вы можете обмениваться данными между приложениями через брелок. Записывайте данные в полное приложение и проверяйте с бесплатного или наоборот.

0

Привет, я изучал эту тему в течение нескольких месяцев, я узнал об этом.

Не существует аутентичного способа обнаружения всех установленных на устройстве приложений, которые не были повреждены. Для этого я сделал это, я использовал это утверждение.

if([[UIApplication SharedApplication] canOpenURL:(the apps scheme)]) 
{ 
NSLog(@"App found"); 
} 

Вы можете найти список схем на нижерасположенных сайтах.

У этого есть json api тоже.

http://schemes.zwapp.com/

http://schemes.zwapp.com/.json?page=1 к http://schemes.zwapp.com/.json?page=470 постепенно.

Это один очень известные схемы приложения и пример использования слишком

http://handleopenurl.com/

лучший способ смотреть на это

https://github.com/danielamitay/iHasApp