React-native-iap: Amazon Appstore

Criado em 20 jan. 2019  ·  30Comentários  ·  Fonte: dooboolab/react-native-iap

Este módulo oferece suporte a IAPs da Amazon Appstore?

❓ question 🏃🏻‍♀️ in progress 🚶🏻 stale 🥺 feature request

Comentários muito úteis

Não tenho certeza se alguém começou a trabalhar nisso, no entanto, comecei a implementar a funcionalidade para oferecer suporte aos IAPs da Amazon Appstore. Espero ter um PR pronto em breve.

Todos 30 comentários

Não. Não oferecemos suporte a dispositivos kindle porque não temos um aqui. Existe PR em nosso plugin flutter, mas ninguém contribuiu com este ainda.

Não tenho certeza se alguém começou a trabalhar nisso, no entanto, comecei a implementar a funcionalidade para oferecer suporte aos IAPs da Amazon Appstore. Espero ter um PR pronto em breve.

@ gborges0727 Acho que você está dentro. working . Obrigado!

@ gborges0727 , vejo seu fork, e que você pelo menos começou em algum código relacionado ao

Qual é o status deste trabalho?

Estou no ponto em meu projeto em que preciso adicionar suporte da Amazon.

Seria incrível se alguém já tivesse descoberto isso :)

O trabalho está realmente feito, só não consegui escrever o texto digitado / atualizar o leia-me ainda. Espero ter um PR pronto neste fim de semana!

Doce! Ótimo ouvir isso. Na verdade, estou testando seu garfo nos próximos dias ou assim. Eu vou deixar você saber o que eu encontrar.

Meu aplicativo está usando especificamente um produto de assinatura com 2 opções de período, mensal e anual.

Que tipo de teste você fez com isso? Você testou os produtos por assinatura?

Além disso, percebi que o seu método para determinar a Amazon versus outros dispositivos é verificar o recurso amazon.hardware.fire_tv .

Isso ocorre porque seu aplicativo é especificamente para Fire TV ou isso será verdade para todos os dispositivos da Amazon, incluindo tablets e outros?

Na verdade, só testei produtos por assinatura, então, se você fizer alguma compra, também será um bom teste. E meu aplicativo é especificamente para fire_tv, é por isso que usei isso. Provavelmente uma opção mais geral para testar em qualquer dispositivo Amazon

ok, achei isso , que parece ser bastante confiável.

import android.os.Build;
isAmazonDevice = Build.MANUFACTURER.equals("Amazon");

Minha pesquisa encontrou outras opções, incluindo tentar detectar de qual STORE o aplicativo foi instalado, mas eu acho que a detecção de dispositivos é boa o suficiente para a maioria.

Você não estava recebendo erros sobre o uso da classe Set ?

Eu estava recebendo o seguinte ao tentar usar a versão amazon de getProductData()

java.lang.RuntimeException: Got unknown argument class: Set

Este foi o meu trabalho em torno de:

public RequestId getProductData(ReadableArray skus, Promise promise) {

    //Build Set from ReadableArray
    final Set<String> skusSet = new HashSet<String>();
    for (int i = 0; i < skus.size(); i++) {
      skusSet.add(skus.getString(i));
    }

    savePromise(GET_PRODUCT_DATA, promise);
    RequestId requestId = PurchasingService.getProductData(skusSet);
    return requestId;
  }

Além disso, você sabe como desativar a dependência do Google Play Services em tempo de execução, quando em um dispositivo amazon?

Estou recebendo um pop-up que diz:

[App Name] won't run without Google Play services, which are not supported by your device.

Desculpe tantas perguntas, não quero enviar spam para você. Obrigado novamente pelo excelente trabalho!

Eu fiz mais algumas mudanças.

Se você estiver interessado, pode ver meu fork / branch aqui:
https://github.com/curiousdustin/react-native-iap/commits/curious

  • Fiz alguns trabalhos para aplicar as alterações mais recentes da bifurcação principal, principalmente as verificações de módulos nativos. comprometer .
  • Conforme mencionado, descobri que deveria usar ReadableArray no lugar de Set commit
  • Estou verificando o fabricante em vez do fire_tv id específico. comprometer-se
  • Como estarei usando RVS , achei que seria útil adicionar userIdAmazon aos objetos de compra. comprometer-se

Ainda não fiz muitos testes, mas parece bom até agora. Obrigado novamente!

Ei, desculpe por voltar tarde! Acredito que a dependência dos serviços do Google Play em tempo de execução pode ser resolvida adicionando algo ao seu AndroidManifest.xml, mas não consigo me lembrar exatamente o que foi adicionado. Os erros em getProductData () podem ser completamente válidos! Eu realmente não testei essa função, então poderia haver problemas 100% lá. Suas alterações parecem boas! Faz sentido incorporá-los antes de enviar o PR aqui.

Ah, esqueci de mencionar que descobri que a mensagem won't run without Google Play services que estava recebendo era na verdade resultado do uso do Firebase. Eu encontrei uma solução alternativa para simplesmente não inicializar o Firebase na Amazon, e ainda recebo avisos nos logs, mas isso não parece afetar mais o usuário.

Qualquer informação que você possa compartilhar sobre o arquivo de manifesto ainda pode ser valiosa.

Obrigado!

Dando uma olhada no meu manifesto do Android, não tenho certeza do que incluiria para resolver qualquer problema .. Pode ter me lembrado de fantasmas no que diz respeito a isso haha. Teve sorte em testar mais um pouco?

Eu não diria que testei exaustivamente. Ainda apenas testando com produtos de assinatura.

Eu adicionei mais algumas modificações:

Obrigado pelo trabalho aqui, eu consertei a função que verifica qual loja usar
https://github.com/curiousdustin/react-native-iap/pull/1

Posso usar esta função? eu preciso disso

Existe alguma documentação sobre como usar seu código Amazon @curiousdustin @ gborges0727 ?

Eu preciso adicionar o suporte IAP da Amazon para meus aplicativos, então eu realmente preciso disso.

@ DannyRox23 , desculpe, não há documentação além de nossas discussões aqui.

Aqui estão alguns esclarecimentos:

  • Nosso aplicativo ao vivo está usando o código encontrado aqui: https://github.com/curiousdustin/react-native-iap/commit/a0911a845436f585769af28b12926bdebaf56f45
  • Estamos usando variantes de compilação do Gradle para construir um APK separado para o Amazon. Este código neste branch usa as propriedades de configuração de compilação geradas automaticamente para determinar se é o APK Amazon ou não.
  • Nosso aplicativo tem APENAS 1 IAP de assinatura de renovação automática.
  • NÃO testamos nenhum outro tipo de IAP ou recursos.
  • Usamos validação de recibo do lado do servidor para todas as plataformas.

Espero que ajude. Gostaria de poder retribuir mais à comunidade testando isso completamente e adicionando-o à biblioteca principal, mas simplesmente não tenho tempo. Obrigado novamente @ gborges0727 por fazer a maior parte do trabalho 👍

@curiousdustin Agradeço a resposta! Usei seu código e me livrei das verificações de dispositivo, pois o aplicativo é exclusivamente para dispositivos Amazon. Estou um pouco perdido, no entanto; mesmo com a verificação do dispositivo, enviei meu aplicativo da Amazon para a Amazon e a Amazon relata que o aplicativo está usando o IAP do Google, então eles não aprovaram o aplicativo.

Como faço para depurar o aplicativo para ver se está funcionando. Deve mostrar a janela de compra do Amazon IAP em emuladores? Eu preciso de um dispositivo Amazon para testar totalmente? Funciona com Bluestacks? Existe algum emulador de dispositivo da Amazon que eu possa usar?

Consegui remover os avisos de faturamento do Google usando este arquivo de manifesto que se mescla com meu arquivo de manifesto principal. Acho que a chave é a linha para remover a permissão de faturamento.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="fm.pinna.app">

    <uses-permission android:name="com.android.vending.BILLING" tools:node="remove" />

    <application>
        <receiver
            android:name="com.amazon.device.iap.ResponseReceiver"
            android:permission="com.amazon.inapp.purchasing.Permission.NOTIFY">
            <intent-filter>
                <action android:name="com.amazon.inapp.purchasing.NOTIFY" />
            </intent-filter>
        </receiver>
    </application>

</manifest>

Pode haver emuladores da Amazon, mas não os usei. Usei dispositivos Kindle Fire reais para testar. Eu também não usei Bluestacks, desculpe, não sei se iria funcionar.

Para teste, eu apenas segui os documentos da

@hyochan , você estaria aberto para fundir algum suporte da Amazon se ele incluir apenas suporte para cobrança de assinatura?

Quem tem o fork do código mais atualizado / podemos tentar colocar o PR no pacote principal? Para ecoar @benoitdion, seria correto mesclar apenas com o suporte para cobrança de assinatura?

Não acompanhei totalmente o progresso do módulo principal react-native-iap . No entanto, acho que houve grandes mudanças desde @ gborges0727 e eu estava trabalhando nisso. Principalmente o retrabalho do fluxo de compra e outras mudanças importantes que vêm com a versão 3.0.

https://github.com/dooboolab/react-native-iap/pull/510

Portanto, não acho que nenhuma de nossas implementações Amazon estaria pronta para se fundir com o fork principal neste momento, mesmo para apenas assinaturas. 😞

Olá, parece que não houve nenhuma atividade sobre este problema recentemente. O problema foi corrigido ou ainda requer a atenção da comunidade? Este problema pode ser resolvido se nenhuma outra atividade ocorrer. Você também pode rotular esse problema como "Para discussão" ou "Bom primeiro problema" e eu o deixarei em aberto. Obrigado por suas contribuições.

Encerrando este problema após um período prolongado de inatividade. Se esse problema ainda estiver presente na versão mais recente, sinta-se à vontade para criar um novo problema com informações atualizadas.

@curiousdustin Você acha que pode fazer RP de suas alterações com a compatibilidade da Amazon Store com o branch master? Seria muito útil

As atualizações que fizemos para oferecer suporte à Amazon não são compatíveis com as principais mudanças no 3.0. Veja acima.

Esta página foi útil?
0 / 5 - 0 avaliações