Как программно проверить и открыть существующее приложение в iOS 8?

Я хочу проверить, присутствует ли приложение в моем iphone или нет. Если он присутствует, я хочу запустить его, чтобы открыть ссылку в App Store приложения.

Пожалуйста, предложите необходимые параметры для этого и способ его реализации.

У меня есть ссылка App Store, чтобы открыть приложение, но мне нужно проверить, присутствует ли приложение в телефоне.

Ответ 1

попробуйте этот код

swift 2.2

 @IBAction func openInstaApp(sender: AnyObject) {
    var instagramHooks = "instagram://user?username=your_username"
    var instagramUrl = NSURL(string: instagramHooks)
    if UIApplication.sharedApplication().canOpenURL(instagramUrl!)
    {
        UIApplication.sharedApplication().openURL(instagramUrl!)

    } else {
        //redirect to safari because the user doesn't have Instagram
        println("App not installed")
        UIApplication.sharedApplication().openURL(NSURL(string: "https://itunes.apple.com/in/app/instagram/id389801252?m")!)

    }

}

swift 3

 @IBAction func openInstaApp(sender: AnyObject) {
    let instagramHooks = "instagram://user?username=your_username"
    let instagramUrl = URL(string: instagramHooks)
    if UIApplication.shared.canOpenURL(instagramUrl! as URL)
    {
        UIApplication.shared.open(instagramUrl!)

    } else {
        //redirect to safari because the user doesn't have Instagram
        print("App not installed")
        UIApplication.shared.open(URL(string: "https://itunes.apple.com/in/app/instagram/id389801252?m")!)
    }

}

Ответ 2

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

Если приложение можно открыть с помощью функции openURL (которая использует настраиваемую настраиваемую схему URL), пользователь может напрямую получить доступ к вашему приложению.

Если нет, вы можете открыть страницу приложения App Store с помощью функции openURL, поставляя URL-адрес приложения itunes.

Вот полная идея о том, как ее достичь.

Ответ 3

Вы можете проверить, установлено ли соответствующее устройство, приложение:

// url = "example" (check the following image to understand)
let canOpen = UIApplication.sharedApplication().canOpenURL(NSURL(string: url as String)!)

Где url предварительно настроено (у вас есть схема URL, зарегистрированная для вашего приложения в Info.plist)

Итак, если canOpen true означает, что приложение установлено, и вы можете открыть его с помощью:

UIApplication.sharedApplication().openURL(NSURL(string:url)!)

enter image description here

Ответ 4

Вы можете проверить, доступно ли приложение или нет с использованием функции iOS схемы URL, а затем откройте iTunes url.Try со следующим кодом для вашего решения:

Сначала настройте схему URL "testapp" в вашем приложении itunes, а затем используйте следующий код в другом приложении, из которого вы хотите открыть приложение:

-(IBAction) openApp:(id)sender {

    // Opens the app if installed, otherwise displays an error
    UIApplication *yourApplication = [UIApplication sharedApplication];
    NSString *URLEncodedText = [self.textBox.text stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    NSString *ourPath = [@"testapp://" stringByAppendingString:URLEncodedText];
    NSURL *ourURL = [NSURL URLWithString:ourPath];
    if ([yourApplication canOpenURL:ourURL]) {
        [yourApplication openURL:ourURL];
    }
    else {
        //The App is not installed. It must be installed from iTunes code.
        NSString *iTunesLink = @"//Your itunes Url";
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:iTunesLink]];
    }

}

Ответ 5

Вам нужно использовать схемы URL. Идея такова:

Настройка идентификатора URL для ваших приложений делает его распознаваемым другими приложениями. Так же, приложение, которое вы хотите открыть, должно иметь один пользовательский идентификатор URL. Google это для пользовательского идентификатора URL вашего желаемого приложения. Используйте ссылку ниже для ссылки о том, как использовать схемы URL.

Для Справка

Сайт для проверки URL идентификаторов для приложений

Ответ 6

let naviURL = NSURL(string: "yandexnavi://build_route_on_map?lat_from=55.751802&lon_from=37.586684&lat_to=55.758192&lon_to=37.642817")!
                let res = UIApplication.sharedApplication().openURL(naviURL)
                if !res {
                    let appStoreURL = NSURL(string: "itms://itunes.apple.com/ru/app/andeks.navigator/id474500851?mt=8")!
                    UIApplication.sharedApplication().openURL(appStoreURL)

                }