Есть ли способ узнать, установлено ли уже приложение для iPhone / iPad? - PullRequest
3 голосов
/ 03 июня 2010

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

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

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

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

Ответы [ 5 ]

6 голосов
/ 03 июня 2010

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

3 голосов
/ 03 июня 2010

Согласно этому ответу , если у вас такой же идентификатор приложения верхнего уровня, вы можете получить доступ к области данных вашего другого приложения. Я считаю, что идентификаторы приложений с подстановочными знаками также могут обмениваться данными, см. Документацию по предоставлению портала .

0 голосов
/ 11 января 2013

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

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

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

0 голосов
/ 04 июня 2010

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

0 голосов
/ 03 июня 2010

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

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

-дан

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