好的,所以我正在使用AIR和AS3开发移动游戏。这里的想法是我想为安装另一个游戏提供激励。
换句话说: 用户点击游戏A中的按钮,将它们带到游戏B的应用页面。用户安装游戏B,返回游戏A,在游戏A中获得奖励。
有没有办法检测游戏B已经安装?最可能的方式似乎只是在游戏A恢复时检测游戏B是否已安装,但我似乎无法使用AS3 / AIR找到一种方法。
我可能还需要为Android和iOS执行此操作,我认为这需要不同的方法。
答案 0 :(得分:1)
有几种方法可以解答这个问题: 自定义URL方案: https://developer.apple.com/library/ios/documentation/iphone/conceptual/iphoneosprogrammingguide/AdvancedAppTricks/AdvancedAppTricks.html (与其他应用程序通信部分)
这要求您尝试向上销售的应用程序实际上实现了自定义URL方案,但实现起来很简单。获得URL Scheme后,您可以创建一个检查:canOpenURL的方法: 返回应用程序是否可以打开给定的URL资源。
如果您想要更重要的数据交换(共享登录或其他类似),您可以使用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