Reputation: 551
Is there any way to determine if a user has a specific app installed, or even to count how many apps they have installed?
The information would be used to target information passed to the user.
Upvotes: 0
Views: 2560
Reputation: 4946
Not on a stock phone. Jailbroken maybe, but I have not played with the jailbroken side of things.
You could try to open an app via a URL scheme. Using Twitter as an example, one of its URL schemes is twitter://user?screen_name=somename
You can check if you can open that URL:
NSURL *tURL = [NSURL URLWithString:@"twitter://user?screen_name=somename"];
if ( [[UIApplication sharedApplication] canOpenURL:tURL] )
// if here, you can open twitter app
You can extrapolate from here if you want.
Upvotes: 5
Reputation: 70997
Yes and No. On iOS, there are a few methods which can be used, but they won't get you the entire list, only some of the apps. Daniel Amitay has a nice framework for this. You can find it here (iHasApp)
I have used it and it gets most of the apps, but as I said, not all. Daniel explains in his blog post what techniques you can use.
Upvotes: 1
Reputation: 3317
Short answer: No.
Long answer: there are ways to detect if certain apps that provide the capability are present. For example, the Facebook app (see this question). However, it is not possible to detect apps that do not support that kind of detection, and it is not possible to get a total count of apps (unless, of course, they only had detectable apps, but the likelihood of that is incredibly slim).
Upvotes: 1
Reputation: 27597
Yes if the apps in question are known to you as a developer of that feature and do implement custom URL schemas (which you also need to know). There is a service that tries to collect that information: handleopenurl.com
Upvotes: 1