2013-05-14 16 views
9

znalazłem następujący kod z here dostać się lista produktów z sklepu Google PlayGoogle w app zakupu uzyskać listę produktów

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

Czy istnieje sposób, aby uzyskać dynamiczną listę produktów? tutaj jest mocno zakodowany. Co się stanie, gdy dodaję nowe produkty po uruchomieniu aplikacji?

+0

Wszelkie informacje o tym? – Caipivara

Odpowiedz

29

Nie jest to obecnie możliwe za pomocą Google API.

Utwórz plik JSON zawierający bieżący numer SKUs i umieść go na jakimś serwerze.

W swojej aplikacji najpierw załaduj ten plik z adresu URL serwera, a następnie użyj tej listy SKUs, aby pobrać szczegóły produktu za pomocą interfejsu API Google.

Do Google: Zapewnij funkcję do tego, WRÓĆ NA CIEBIE!

+1

Niedostępne jeszcze, do tej pory 16 października 15. Wstydź się tobie, google i jabłko też. lol –

+0

@Dinh, proszę podać mi link do referencji, nie mogę go znaleźć. – Dusan

+0

https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/StoreKitGuide/Chapters/ShowUI.html#//apple_ref/doc/uid/TP40008267-CH3-SW6 Nie ma mechanizmu wykonawczego do pobrania listę wszystkich produktów skonfigurowanych w iTunes Connect dla konkretnej aplikacji. Odpowiadasz za zarządzanie listą produktów aplikacji i przekazywanie tych informacji do swojej aplikacji. Jeśli potrzebujesz zarządzać dużą liczbą produktów, rozważ skorzystanie z funkcji przesyłania/pobierania XML w iTunes Connect. –

6

Jeśli nie chcą realizować logikę nabycia listę produktów z własnego serwera, innym rozwiązaniem byłoby użycie predefiniowanych identyfikatorów „manekin” produkt, jak szczeliny ID produktu:

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

Funkcja getSkuDetails po prostu zwróci wartość null dla nieistniejących identyfikatorów produktu. Jeśli więc nie oczekujesz, że lista Twoich produktów będzie się zmieniać zbyt często lub zbyt często, możesz po prostu zdefiniować małą liczbę identyfikatorów produktów w swojej aplikacji i pominąć wartości null zwracane przez getSkuDetails.

Jeśli chcesz dodać nowy produkt, po prostu użyj identyfikatora zdefiniowanego przez następne nieużywane miejsce w konsoli programisty, a aplikacja wyświetli je bez aktualizowania aplikacji.

Usuwanie produktu może być trudne, ponieważ nieaktywne i usunięte identyfikatory produktu będą nadal zwracane, dzięki czemu można oznaczyć produkt usunięty za pomocą jego pola opisu - użyj predefiniowanej stałej, np. "NIEDOSTĘPNA" i sprawdź jej obecność w Twojej aplikacji. Jeśli opis produktu jest równy tej stałej, po prostu pomiń go i nie wyświetlaj go.

Wiem, wiem. To brudny hack. Ale działa.

+0

Jeśli używasz klas pomocniczych z przykładowego projektu Google, możesz wysłać zapytanie do produktów, wywołując 'IabHelper.queryInventoryAsync (ostatnie boolean querySkuDetails, ostatnia lista moreSkus, final QueryInventoryFinishedListener listenener)' (lub wersję synchroniczną, jeśli wolisz), po prostu podaj listę SKU jako mistycznego parametru 'moreSkus'. Musisz mimo wszystko kupić wcześniej zakupione produkty, więc trudno uniknąć tego połączenia. Wciąż brzydko to ujmować łagodnie. – racs

0

Z jakiegoś powodu nie jest to możliwe. Gdybyś był w stanie pobrać zaktualizowaną listę produktów inapp, w jaki sposób byłbyś w stanie obsłużyć te nowe produkty bez zmiany kodu aplikacji? Jeśli zmienisz listę produktów, musisz wydać aktualizację dla aplikacji, która zajmuje się nowymi produktami.

jedyny powód, aby pobrać nowe produkty bez zmiany kodu aplikacji byłaby zmiana cen dla produktów siebie, ale oznaczałoby to wbrew warunkom Google & warunki

Powiązane problemy