好吧,我正在使用AIR和AS3開發手機遊戲。這裏的想法是我想提供安裝另一個遊戲的激勵。確定用戶是否安裝了應用程序(AIR/AS3)
換句話說: 用戶在遊戲中一個水龍頭按鈕,使他們的應用程序頁面遊戲B.用戶安裝遊戲B,可以追溯到遊戲,獲得在遊戲中的獎勵A.
是否有辦法檢測到遊戲B已安裝?最有可能的方式似乎只是檢測遊戲A恢復時是否安裝了遊戲B,但似乎無法找到使用AS3/AIR的方法。
我可能還需要爲Android和iOS這樣做,我認爲這需要採用不同的方法。
好吧,我正在使用AIR和AS3開發手機遊戲。這裏的想法是我想提供安裝另一個遊戲的激勵。確定用戶是否安裝了應用程序(AIR/AS3)
換句話說: 用戶在遊戲中一個水龍頭按鈕,使他們的應用程序頁面遊戲B.用戶安裝遊戲B,可以追溯到遊戲,獲得在遊戲中的獎勵A.
是否有辦法檢測到遊戲B已安裝?最有可能的方式似乎只是檢測遊戲A恢復時是否安裝了遊戲B,但似乎無法找到使用AS3/AIR的方法。
我可能還需要爲Android和iOS這樣做,我認爲這需要採用不同的方法。
有一對夫婦的方式來回答這個問題: 自定義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
您可以通過查詢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,你應該建立一個原生擴展訪問PackageManager。幸運的是,互聯網是偉大的,其他人已經做到了。你可以看看這個extension。它的5塊錢,但總值得。我用它來做一個非常類似的邏輯。
而且,如果應用程序B是你自己的,你可以在SD卡目錄中添加一個新的文件,並檢查該文件中是否存在與應用A.
好運:d