我制作了一个应用程序,现在已经在Google Play商店中存在(它也在Apple App Store中,直到Apple无理由地删除它)。该应用程序的成本为1.99,但我现在正在考虑添加广告并将其设置为免费(我不确定无论如何......),并通过应用内购买来移除广告。
问题是我绝对不想让人们再次付钱(我说的是谁已经购买了它)。如何向现有用户提供免费的应用程序内容?我没有用户的在线数据库,该应用程序完全脱机。
答案 0 :(得分:1)
您可以使用“NameApp Pro”重命名当前应用,将其设为1.99。
使用Android风格创建一个新的App Free with Ads。使用flavor可以更改applicationId(包是不同的):
android {
defaultConfig {
applicationId "com.example.myapp"
}
productFlavors {
free {
applicationIdSuffix ".free"
}
pro {
applicationIdSuffix ".pro"
}
}
}
答案 1 :(得分:1)
我正在加强Abr评论。
首先,每当您处理此类情况时,您必须拥有服务器数据库(用于身份验证)并存储已购买应用程序的人员。我认为您不需要本地数据库,但是您需要一个标志来定义当前用户是否购买了应用程序,您可以在NSUserDefault
中保留该标记。
现在,每当用户通过任何设备登录时,您需要通过API匹配服务器数据库中的电子邮件ID /电话号码,并检查他的用户凭据是否有效以及是否有效然后是否购买用户并将此标志保存在NSUserDefault
中。
现在,在您的应用中执行任何您想要更改的内容,它不会向您购买的用户反映任何问题,因为它们始终会从服务器进行过滤。
注意:您没有考虑一个条件,如果一个用户通过Android应用在您的应用中注册并进行谷歌应用内购买会怎么样。后来他购买iPhone并从苹果商店下载你的应用程序。根据您目前的情况,他还必须为i-phone购买您的应用程序。我不认为一个用户想再次购买它。
所以我的解释也会解决这个问题。
修改
正如您所说,应用在评论中完全脱机。
进行应用内购买交易,让用户上线。现在你可以做一件事,在这段时间内,如果用户付款成功,那么将其数据存储到服务器中(显然他通过任何ID购买应用程序,因此存储该ID)。
现在,当用户再次安装时,会在应用内屏幕中显示恢复选项。当用户点击此按钮时,检查用户是否在服务器数据库中说明用户是否付款,此处询问用户是否收到电子邮件。
如果您没有服务器数据库,则从本机存储恢复该事务。