2013-07-03 69 views
1

iOS6引入了StoreKit框架,該框架被指定用於從應用內與AppStore進行交互。 我很容易設法將用戶指向特定的應用程序,問題是如何檢測用戶是否實際安裝了我將他重定向到的應用程序?使用StoreKit檢測應用安裝

+0

你的意思是從一個不同的應用程序? –

+0

是的。 Facebook應用程序用於宣傳不同應用程序的相同方式 – Rizon

+0

http://stackoverflow.com/questions/7226406/get-list-of-all-installed-apps – edwardmp

回答

1

這通常是通過調用-canOpenURL:UIAplication對象做過這樣的:

NSURL *appURL = [NSURL URLWithString:@"fb:"]; 
BOOL appInstalled = [[UIApplication sharedApplication] canOpenURL:appURL]; 

但你需要知道的URL方案做第二個應用程序打開。它由應用程序開發人員在Info.plist文件中聲明。

+1

這可能不是很有用,我會解釋爲什麼 - 在安裝應用程序(使用SKStoreProductViewController)之後,調用委託(在應用程序實際完成安裝過程之前)。因此,對'canOpenURL'的調用發生得太快,從而返回錯誤。 – Rizon

+1

您的論點無效。該代碼有效。它會檢測應用程序是否已安裝。如果應用程序未安裝(尚未),則返回false。我不知道任何其他方式來檢測。只需檢查多次或每5秒鐘使用一次計時器。 – Tricertops

0

有一個名爲「iHasApp」的開源框架,可以檢測已安裝的應用程序。 Git儲存庫:iHasApp

+0

我看着它,iHasApp不起作用。它是「一些」而不是所有應用程序的預先列表。看到這個答案http://stackoverflow.com/questions/17152049/installed-app-sizes-vs-appstore-app-sizes –

+0

你不能得到所有的應用程序的列表!這樣做沒有非私有API。 – WWJD

相關問題