Обнаружение программно, будь то приложение установлено на iPhone

StackOverflow https://stackoverflow.com/questions/3808691

Вопрос

Я в этой ситуации, когда мне нужно отобразить кнопку, которая говорит «Открыть myApp» (если MyApp устанавливается на устройстве) или он говорит «скачать myApp» (если myApp не установлен на устройстве) в приложении iPhone. Для этого мне нужно обнаружить, было ли приложение (с известным пользовательским URL) установлен на устройстве. Как я могу это сделать? Заранее спасибо.

Это было полезно?

Решение

Обновлено 8 января 2014 - 3 вещи, которые вы можете сделать

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

Это мое нахождение. Использовать canOpenURL Метод проверки, установлен ли приложение или / а затем использовать openURL метод

  1. Откройте приложение, установленное на устройстве iOS
  2. Возьмите пользователь в магазин приложений непосредственно указывая на них в приложение / ваш список приложений разработчиков
  3. Вместо этого возьми их на сайт

Все образцы кода доступны для каждого сценария

//Find out if the application has been installed on the iOS device
- (BOOL)isMyAppInstalled { 
    return [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"nameOfMyApp:"]]; 
} 

- (IBAction)openOrDownloadApp { 
    //This will return true if the app is installed on the iOS device
    if ([self myAppIsInstalled]){
        //Opens the application
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"nameOfMyApp:"]]; 
    } 
    else { //App is not installed so do one of following:

        //1. Take the user to the apple store so they can download the app
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms://itunes.com/apps/nameOfMyApp"]]; 

        //OR

        //2. Take the user to a list of applications from a developer
        //or company exclude all punctuation and space characters. 
        //for example 'Pavan's Apps'
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms://itunes.com/apps/PavansApps"]];

        //OR

        //3. Take your users to a website instead, with maybe instructions/information
         [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.pavan.com/WhyTheHellDidTheAppNotOpen_what_now.html"]];

    } 
}

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

Другие советы

Если схема URL для вашего приложения является «MyApp:», то

BOOL myAppInstalled = [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"myapp:"]];

(Требуется IOS 3.0.)

Чтобы проверить приложение устанавливается в устройство или нет

1) В Info.plist добавьте LSapplicationQuerieschemes, что ниже пример

enter image description here

2) и в типах URL

enter image description here

3) Теперь, чтобы проверить приложение установлено или нет

- (IBAction)openAppPressed:(UIButton *)sender {
    NSString *urlString = @"XYZAPP://";
    NSURL *url = [NSURL URLWithString:urlString];

    if ([[UIApplication sharedApplication] canOpenURL:url]) {
        [[UIApplication sharedApplication] openURL:url];
    }
    else {
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itunes link for download app"]];
    }
}

Вы можете добавить простой мета-тег в головке любой страницы, которая нуждается в этом App-inniffing.

Для получения дополнительной информации иди сюда:

http://developer.apple.com/library/ios/#documentation/applepmation/reference/safariwebcontent/proomotingAppswithappbanners/proomotingAppswithappbanners.html.html.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top