使用 StoreKit 检测应用安装
Posted
技术标签:
【中文标题】使用 StoreKit 检测应用安装【英文标题】:Detect app installation with StoreKit 【发布时间】:2013-07-03 17:57:30 【问题描述】:ios6 引入了 StoreKit 框架,该框架被指定用于从应用程序内部与 AppStore 进行交互。 我很容易将用户引导到一个特定的应用程序,问题是我如何检测用户是否实际安装了我将他重定向到的应用程序?
【问题讨论】:
你的意思是来自不同的应用程序吗? 是的。与 Facebook 应用宣传不同应用的方式相同 ***.com/questions/7226406/…的可能重复 【参考方案1】:这通常通过在UIAplication
对象上调用-canOpenURL:
来完成,如下所示:
NSURL *appURL = [NSURL URLWithString:@"fb:"];
BOOL appInstalled = [[UIApplication sharedApplication] canOpenURL:appURL];
但是您需要知道第二个应用程序打开什么 URL 方案。由应用开发者在 Info.plist 文件中声明。
【讨论】:
这不是很有帮助,我会解释为什么 - 安装应用程序后(使用 SKStoreProductViewController),委托被调用(在应用程序实际完成安装过程之前)。所以对“canOpenURL”的调用发生得太快,因此返回 false。 您的论点无效。该代码有效。它检测是否安装了应用程序。如果应用程序尚未安装(尚未),则返回 false。我不知道有什么其他方法可以检测到这一点。只需检查多次或每 5 秒使用一次计时器。【参考方案2】:有一个名为“iHasApp”的开源框架可以检测已安装的应用程序。 Git 存储库:iHasApp
【讨论】:
我看了下,iHasApp 不工作。它是“一些”并非所有应用程序的预列表。看到这个答案***.com/questions/17152049/… 您无法获得所有应用程序的列表!这样做没有非私有 API。以上是关于使用 StoreKit 检测应用安装的主要内容,如果未能解决你的问题,请参考以下文章
StoreKit 框架 - 更改 iTunes 商店以进行应用内购买时未调用回调