Google在应用内购买获取产品列表

use*_*181 9 android android-billing google-play-services

我从这里找到以下代码从google play store获取产品列表

ArrayList skuList = new ArrayList();
skuList.add("premiumUpgrade");
skuList.add("gas");
Bundle querySkus = new Bundle();
querySkus.putStringArrayList(“ITEM_ID_LIST”, skuList);
Run Code Online (Sandbox Code Playgroud)

有没有办法获得动态产品列表?在这里它的硬编码.当我在应用程序启动后添加新产品时会发生什么?

Dus*_*san 31

目前无法使用Google API.

创建一个JSON包含current 的文件SKUs并将其放在某个服务器上.

在您的应用中,首先从服务器网址加载此文件,然后使用此列表SKUs通过Google API检索产品详细信息.

致谷歌:为此提供功能,呐喊你吧!


Lev*_*son 6

如果您不想实现从您自己的服务器获取产品列表的逻辑,另一种选择是使用预定义的"虚拟"产品ID,例如产品ID槽:

private static final String[] PRODUCTIDS = {"product1", "product2", "product3", etc. };
Run Code Online (Sandbox Code Playgroud)

对于不存在的产品ID,getSkuDetails函数将仅返回null.因此,如果您不希望产品列表变化太频繁或过多,那么您可以在应用中定义少量产品ID,并跳过getSkuDetails返回的空值.

如果要添加新产品,只需使用开发人员控制台中下一个未使用的插槽定义的ID,您的应用程序将在不更新应用程序的情况下列出该ID.

删除产品可能会非常棘手,因为仍会返回非活动和已删除的产品ID,因此您可以使用其描述字段标记产品已删除 - 使用预定义的常量,例如"不可用"并检查其在您的应用中的存在.如果产品描述等于此常量,则只需跳过它并且不列出它.

我知道我知道.这是一个肮脏的黑客.但它的确有效.