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

时间:2013-10-06 20:21:22

标签: android ios actionscript-3 flash air

好的,所以我正在使用AIR和AS3开发移动游戏。这里的想法是我想为安装另一个游戏提供激励。

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

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

我可能还需要为Android和iOS执行此操作,我认为这需要不同的方法。

2 个答案:

答案 0 :(得分:1)

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

这要求您尝试向上销售的应用程序实际上实现了自定义URL方案,但实现起来很简单。获得URL Scheme后,您可以创建一个检查:canOpenURL的方法: 返回应用程序是否可以打开给定的URL资源。

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

如果您想要更重要的数据交换(共享登录或其他类似),您可以使用Keychain工具: https://developer.apple.com/library/mac/documentation/security/conceptual/keychainServConcepts/iPhoneTasks/iPhoneTasks.html

答案 1 :(得分:1)

您可以通过查询PackageManager类来使用java执行此操作。在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,因此您必须构建一个本机扩展来访问PackageManager。幸运的是,互联网很棒,其他人已经这样做了。你可以查看这个extension。它的5美元,但总值得。我用它来做一个非常相似的逻辑。

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

祝你好运:D