2013-05-14 67 views
9

我發現下面的代碼here擺脫谷歌的產品列表play商店谷歌在應用內購買獲得產品列表

ArrayList skuList = new ArrayList(); 
skuList.add("premiumUpgrade"); 
skuList.add("gas"); 
Bundle querySkus = new Bundle(); 
querySkus.putStringArrayList(「ITEM_ID_LIST」, skuList); 

有沒有辦法讓活力的產品列表?這裏它的硬編碼。當我在應用程序啓動後添加新產品時會發生什麼?

+0

這方面有任何更新? – Caipivara 2014-09-16 16:10:37

回答

29

這目前不能使用Google API。

創建一個JSON文件,其中包含當前SKUs,並把它的一些服務器上。

在你的應用程序,第一負荷服務器的URL此文件,然後使用SKUs這個列表檢索通過谷歌API產品的詳細信息。

爲谷歌:爲此提供的功能,爲你感到羞恥!

+1

還沒有發佈,直到2015年10月16日。 對你,谷歌和蘋果也感到羞恥。大聲笑 – 2015-10-16 06:21:26

+0

@Dinh,請給我鏈接的參考,找不到它。 – Dusan 2015-10-16 08:06:45

+0

https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/StoreKitGuide/Chapters/ShowUI.html#//apple_ref/doc/uid/TP40008267-CH3-SW6 沒有運行時機制來獲取iTunes Connect中爲特定應用程序配置的所有產品的列表。您有責任管理您的應用的產品列表並將該信息提供給您的應用。如果您需要管理大量產品,請考慮在iTunes Connect中使用批量XML上傳/下載功能。 – 2015-10-19 06:00:00

6

如果您不希望實現從自己的服務器獲得的產品列表中的邏輯,另一種選擇是使用預先定義的「虛擬」產品ID,如產品編號插槽:

private static final String[] PRODUCTIDS = {"product1", "product2", "product3", etc. }; 

對於不存在的產品ID,getSkuDetails函數將簡單地返回null。因此,如果您不希望產品列表變化太頻繁或太多,那麼您可以在應用中定義少量產品ID,並跳過由getSkuDetails返回的空值。

如果你想添加一個新的產品,只要使用由開發者控制檯的下一個未使用的插槽中定義的ID和你的應用程序將列出它不更新的應用程序。

刪除產品可能會非常棘手,因爲不活動和刪除的產品id仍將被返回,因此您可以使用其描述字段標記刪除的產品 - 使用預定義常量,如「NOT AVAILABLE」,並檢查其是否存在在你的應用中的存在。如果產品說明與此常數相等,則只需跳過它,不要列出它。

我知道,我知道。這是一個骯髒的黑客。但它的工作。

+0

如果您正在使用從谷歌範例項目輔助類,那麼你可以通過調用'IabHelper.queryInventoryAsync查詢產品(最終布爾querySkuDetails,最終名單 moreSkus,最終QueryInventoryFinishedListener聽衆)'(或者,如果你喜歡的同步版本),只需將SKU列表指定爲神祕'moreSkus'參數即可。無論如何您都需要購買之前購買的產品,因此很難避免此類問題。仍然難以輕描淡寫。 – racs 2016-01-27 22:46:30

0

這是不可能的原因。如果您能夠獲取更新的inapp產品列表,您將如何在不更改應用程序代碼的情況下爲這些新產品提供服務?如果您更改產品列表,則必須爲處理新產品的應用發佈更新。

的唯一原因,在不改變應用程序代碼來獲取新產品將改變價格的產品本身,而是這將意味着違背了谷歌方面&條件

相關問題