确定用户是否安装了应用程序(AIR / AS3)

好的,我正在使用AIR和AS3进行手机游戏。 这里的想法是我想提供安装另一个游戏的激励。

换句话说:用户在游戏A中点击button,将它们带到游戏B的应用页面。用户安装游戏B,返回游戏A,在游戏A中获得奖励。

有没有办法检测到游戏B已经安装? 最有可能的方式似乎只是检测游戏A恢复时是否安装了游戏B,但我似乎无法find使用AS3 / AIR的方法。

我可能也需要为Android和iOS这样做,我认为这将需要不同的方法。

有几种方法可以回答这个问题:自定义URLscheme: https : //developer.apple.com/library/ios/documentation/iphone/conceptual/iphoneosprogrammingguide/AdvancedAppTricks/AdvancedAppTricks.html (与其他应用程序通信部分)

这就要求你试图向上销售的应用程序实际上实现了一个自定义的URLscheme,但实现起来很简单。 一旦你有了URL Scheme,你可以创build一个方法来检查:canOpenURL:返回一个应用程序是否可以打开给定的URL资源。

  • (BOOL)canOpenURL:(NSURL *)url(在UIApplication中)

如果你想更重要的数据交换(共享login等),你可以使用钥匙串设施: https : //developer.apple.com/library/mac/documentation/security/conceptual/keychainServConcepts/iPhoneTasks/iPhoneTasks.html

你可以通过查询PackageManager类来完成这个工作。 在Java中,这看起来像这样:

isAppInstalled("your.package.name.here"); private boolean isAppInstalled(String packageName) { PackageManager pm = getPackageManager(); boolean installed = false; try { pm.getPackageInfo(packageName, PackageManager.GET_ACTIVITIES); installed = true; } catch (PackageManager.NameNotFoundException e) { installed = false; } return installed; } 

由于您使用的是AS3,因此您必须构build一个本地扩展才能访问PackageManager。 幸运的是,互联网是伟大的,其他人已经做到了这一点。 你可以看看这个扩展 。 它的5块钱,但总值得。 我用它来做一个非常相似的逻辑。

此外,如果应用程序B是您自己的,您可以添加一个新的文件在SD卡目录中,并检查应用程序A是否存在此文件。

祝你好运:D