簡體   English   中英

如何檢查iOS設備中是否安裝了應用程序?

[英]how to check whether application is installed or not in iOS device?

我正在做一個iOS應用程序。 在那,我有一個UITableView模塊。 在那個UITableView中,我顯示了一些應用程序名稱列表。 這些名字來自我的服務器。 這些是我的公司申請。 所以,我不知道有多少應用程序來自服務器。 一旦用戶點擊UITableViewCell,我需要檢查該設備上是否已經安裝了這些應用程序。 如果未安裝,用戶需要使用該應用的應用商店鏈接轉到appstore。 我查了一些教程。 他們說,使用網址方案,我們可以做到這一點。 但是,我沒有這些網址的網址方案,因為這些應用程序來自服務器。 另外,我嘗試了以下方法

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms://itunes.com/apps/nameOfMyApp"]]; 
[[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"nameOfMyAppOrurl:"]];

但沒有任何幫助我。 任何人都可以了解這個問題,如果是這樣,請提出寶貴的建議。

您需要為列表中的每個應用程序提供應用程序URL方案 ,沒有其他方法可以檢查是否已安裝該應用程序。

我猜你服務器的列表形式將是JSON,類似於:

{
   "name" : "My Cool APP",
   "scheme" :"mycoolapp:",
   "itunes": "http:///...../"
}

然后做一些像:

    if ([[UIApplication sharedApplication] canOpenURL:scheme]) {
        [[UIApplication sharedApplication]openURL:scheme];
    }
    else {
        [[UIApplication sharedApplication]openURL:itunesURL];
    }

自定義網址方案是解決此問題的首選方法。 您必須知道所有需要檢查可用性的應用程序的所有URL方案(這意味着所有應用程序都應配置一個)。 對於您的特定情況,您將需要后端支持,即服務器應為每個應用程序提供方案(服務器也應該被告知方案)。

另一種選擇是在鑰匙串中使用共享數據,這里有一個關於通過鑰匙串在應用程序之間共享數據答案 您應該為此考慮一個解決方案,但只要您可以在已知的應用程序組之間共享數據,您就可以在該技術之上實現某些功能。 請注意,第二個解決方案要求您擁有所有應用程序(或能夠影響其配置)。

您可以在服務器上注冊應用程序的自定義URL方案: https//developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/AdvancedAppTricks/AdvancedAppTricks.html#//apple_ref/doc/uid/TP40007072- CH7-SW50

如果您的應用程序有方案,您將能夠使用canOpenURL方法。

您還可以將URL方案分配給公司的應用程序,並使用以下代碼檢查它們是否已安裝:

if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"myAppURLScheme://"]])
{
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"myAppURLScheme://"]];
}
else
{
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" message:@"App not installed on Device"  delegate:self cancelButtonTitle:@"OK" otherButtonTitles:@"Open link", nil];
    [alert show];
}

另請查看此URL Scheme Tutorial

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM