我可以查看用户安装的iOS应用和应用内购买的内容吗?

时间:2015-10-23 16:12:31

标签: ios in-app-purchase

我已经发布了我的第一个iOS应用程序,而我正在开发另一个应用程序。我希望能够在第一个应用中通过应用内购买升级的用户免费提供新的应用内购买。有没有办法看到用户在应用程序中购买另一个应用程序?如果没有,我可以这样做,以便安装了我的第一个应用程序的任何人都可以免费升级第二个应用程序吗?

2 个答案:

答案 0 :(得分:3)

检查应用程序 - 种类。

对于您自己的应用,您可以使用Custom URL scheme检查是否在App2中安装了App1。一些主要应用程序(如Facebook,YouTube等)也具有此功能,因此您可以查看是否已安装这些应用程序。

但是如果你正在寻找一个不支持这个系统的应用程序,那你就不走运了。

检查应用内购买 - 否

至于检查用户是否在其他应用中进行了应用内购买,不,该信息不可用。

唯一的例外是,如果你制作了这两个应用程序,并且在服务器上存储了购买记录,或者设计了应用程序,以便在购买时通知对方。然后,您可以让App1检查服务器(或共享记录)以确定App2是否已完成购买。

您的方案

至于你提到的场景,App1(你做的)用户可以免费升级App2(你也做过),它会有点复杂,但肯定是可行的。

基本上,您需要为每个添加自定义URL方案。这将允许App2查看是否安装了App1。然后,在App2中你会有这样的逻辑......

BOOL userHasInstalledAppOne = [/*here's where you check for the URL scheme*/];
if(userHasInstalledAppOne) {
    // Show "upgrade for free!" button
} else {
    // Show "purchase upgrade" button
}

答案 1 :(得分:0)

您无法了解应用内购买情况,但您可以发现用户是否安装了其他应用,但您可能需要先更新此应用并将以下属性添加到info.plist

<array>
    <dict>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>firstApp</string>
        </array>
    </dict>
</array>

然后在新应用中,您可以查看

var isInstalled = false
if let url = NSURL(string: "firstApp://"){
            isInstalled = UIApplication.sharedApplication().canOpenURL(url)
        }

并将其添加到info.plist

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>firstApp</string>
</array>