如果安装了应用程序,如何以编程方式检查?

How to check programmatically if an App is installed?(如果安装了应用程序,如何以编程方式检查?)
本文介绍了如果安装了应用程序,如何以编程方式检查?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在开发一个 iPhone 应用程序,它将在企业中安装少量第三方应用程序.我有关于捆绑 ID 的信息.有没有办法使用一些系统 API 来检查应用程序是否已经安装?目前应用程序再次安装,覆盖当前安装.我需要以某种方式防止这种情况.(如果应用程序已经安装,Apple 的 AppStore 应用程序会禁用安装选项.)

I am developing an iPhone application which will install few third party applications in an enterprise. I have the information about the bundle IDs. Is there a way to check if the application is already installed, using some system APIs? Currently the application gets installed again, overwriting the current installation. I need to prevent this some how. (Apple's AppStore application disables the installation option if the app is already installed.)

推荐答案

我认为这是不可能直接实现的,但如果应用程序注册了 uri 方案,您可以对此进行测试.

I think this is not possible directly, but if the apps register uri schemes you could test for that.

一个 URI 方案例如是 Facebook 应用程序的 fb://.您可以在应用程序的 info.plist 中注册它.[UIApplication canOpenURL:url] 会告诉你某个 url 是否会打开.因此,如果测试 fb:// 是否会打开,将表明安装了一个注册了 fb:// 的应用程序 - 这对 facebook 应用程序来说是一个很好的提示.

A URI scheme is for example fb:// for the facebook app. You can register that in the info.plist of your app. [UIApplication canOpenURL:url] will tell you if a certain url will or will not open. So testing if fb:// will open, will indicate that there is an app installed which registered fb:// - which is a good hint for the facebook app.

// check whether facebook is (likely to be) installed or not
if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"fb://"]]) {
    // Safe to launch the facebook app
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"fb://profile/200538917420"]];
}

这篇关于如果安装了应用程序,如何以编程方式检查?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Pushing UIViewController above UITabBar(将UIView控制器推送到UITabBar上方)
How to stop UIBarButtonItem text from truncating?(如何阻止UIBarButtonItem文本被截断?)
java.lang.IllegalStateException: SimpleTypeImpl should not be created for error type(异常:不应为错误类型创建SimpleTypeImpl)
Android IllegalArgumentException: The tag for fragment_XXX is invalid. Received: layout-sw600dp/fragment_XXX_0(Android IlLegalArgumentException:Fragment_XXX的标签无效。收到:Layout-sw600dp/Fragment_XXX_0)
iOS convert audio sample rate from 16 kHz to 8 kHz(IOS将音频采样率从16 kHz转换为8 kHz)
Enforcing an audio sampling rate in iOS(在iOS中强制音频采样率)