Calling fetchItems twice doesn't work in a single app session

Aberta
#17 0 comentários 1 reação 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
2/5
Tempo estimado
1-3 horas
Facilidade para iniciantes
45/100
Tipo de issue
Documentação
Clareza
Razoavelmente clara
Status de atividade
Estagnada
Stack de tecnologia
ios, typescript

Direção de pesquisa

Start with the plugin documentation and the connect(), fetchItems(), and tearDown() entry points shown in the issue. Verify how the documented usage handles repeated page visits, then update the guidance to explain the required cleanup before leaving the subscriptions or IAP page. Done means the lifecycle requirement and workaround are clear to users.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

Nativescript versions
@nativescript/payments 1.0.4
@nativescript/core: ~8.1.1
@nativescript/ios: 8.2.2

iOS Version: 15.1.1

Device: iPhone 13 Pro max

Summary of issue: First time calling .connect() and fetchItems is fine. Subscriptions and IAPs (app store products) etc. load. Second time we call it in our app, it does not load at all. However, restarting the app seems to load the app store products again.

We used the code structure provided in this plugin documentation.

Related issues: https://stackoverflow.com/questions/25426564/completion-handler-causing-exc-bad-access-when-same-method-is-called-twice

Workaround/fix for now:
Call teardown() before you leave the subscriptions/IAP page, etc.

eg.

import {
  buyItem,
  BuyItemOptions,
  canMakePayments,
  fetchItems,
  finalizeOrder,
  init as initPayments,
  Item,
  PaymentEvent,
  paymentEvents,
  toMainThread,
  tearDown as cleanUp
} from '@nativescript/payments';

onClose() {
    // Clean up what we've done here as otherwise subscriptions won't load on 2nd reload
    cleanUp();

    this.location.back();
}

Suggested course of action: Update the docs for this plugin to make it clear that tearDown should be called before leaving the page with the subscription / IAP options, etc.

Screenshots:
When everything is fine (1st call / call with the fix above):
IMG_0734

When trying to call the .connect() and fetchItems a second time in an app session (without the fix above):
IMG_0733

Linguagem predominante
TypeScript
Estrelas
35
Forks
13
Métricas de merge de PRs
Nenhum PR com merge em 30d

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de NativeScript/payments

Todas as issues de NativeScript/payments

Issues semelhantes

Mais issues de TypeScript

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.