代码之家  ›  专栏  ›  技术社区  ›  Amarsh

以编程方式检测iPhone上是否安装了应用程序

  •  15
  • Amarsh  · 技术社区  · 14 年前

    在这种情况下,我必须在iPhone应用程序中显示一个按钮,上面写着“打开我的应用程序”(如果我的应用程序安装在设备上)或是“下载我的应用程序”(如果我的应用程序未安装在设备上)。为此,我需要检测设备上是否安装了应用程序(具有已知的自定义URL)。我该怎么做?事先谢谢。

    4 回复  |  直到 6 年前
        1
  •  33
  •   Pavan    10 年前

    2014年1月8日更新-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"]];
    
        } 
    }
    

    选择一个选项,我只是选择宠坏了你。选择一个符合你要求的。 在我的例子中,我必须在项目的不同领域使用这三个选项。

        2
  •  20
  •   Mr.Kushwaha    6 年前

    如果你的应用程序的URL方案是“myapp:”,那么

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

    (需要iOS 3.0。)

        3
  •  5
  •   Hardik Thakkar    8 年前

    检查应用是否安装在设备中

    1) 在info.plist中添加lsapplicationqueriesschemes,如下示例

    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"]];
        }
    }
    
        4
  •  0
  •   Vince Match    11 年前

    你可以在任何需要这个应用嗅探的页面的头部添加一个简单的元标记。

    有关详细信息,请访问:

    http://developer.apple.com/library/ios/#documentation/AppleApplications/Reference/SafariWebContent/PromotingAppswithAppBanners/PromotingAppswithAppBanners.html