React-native-iap: In App Kauf in Expo

Erstellt am 31. Mai 2018  ·  38Kommentare  ·  Quelle: dooboolab/react-native-iap

Hallo,

Wir verwenden Expo, um unser Projekt zu erstellen. In unserem Projekt ist ein wichtiges Thema der In-App-Kauf. Kannst du mir helfen
Wie implementiert man den In-App-Kauf mit expo und welche notwendigen Schritte müssen wir befolgen, um dies zu implementieren.

❓ question 🚶🏻 stale

Hilfreichster Kommentar

Einfach:

  • Erstelle einen neuen Zweig detached
  • Führen Sie exp detach
  • Mach alle die gleichen Sachen, die du normalerweise machen würdest
  • Wechseln Sie zurück zu master , um js-Code hinzuzufügen
  • Wenn Sie in master codieren, wickeln Sie Ihren IAP-Modulcode wie folgt ein:
import { NativeModules } from 'react-native';
const { RNIapModule } = NativeModules;
function hasIAP() {
  return !!NativeModules.RNIapModule;
}
  • Auf diese Weise stürzt Ihr Code beim Aufrufen von IAP-Methoden nicht ab
  • Verwenden Sie beim Bereitstellen oder Testen von IAP den getrennten Zweig - oder überspringen Sie einfach die Zweige insgesamt und gehen Sie zu Rogue> :)

Die allgemeine Idee hier ist, dass exp detach nur einen Ordner /ios & /android auftaucht, damit Sie Ihr Projekt als RN-App verwenden können.
Sie erhalten weiterhin alle Funktionen einer regulären Expo-App. Verwenden Sie zum Bereitstellen einfach Fastlane, damit Sie nicht zu viel natives Material verwenden müssen.
Schließlich sind die Zweige nützlich, um SDK-Versionen zu aktualisieren. Wenn Sie aus irgendeinem Grund Probleme beim Aktualisieren haben, können Sie die Bibliothek einfach wieder trennen und erneut hinzufügen.

Alle 38 Kommentare

Einfach:

  • Erstelle einen neuen Zweig detached
  • Führen Sie exp detach
  • Mach alle die gleichen Sachen, die du normalerweise machen würdest
  • Wechseln Sie zurück zu master , um js-Code hinzuzufügen
  • Wenn Sie in master codieren, wickeln Sie Ihren IAP-Modulcode wie folgt ein:
import { NativeModules } from 'react-native';
const { RNIapModule } = NativeModules;
function hasIAP() {
  return !!NativeModules.RNIapModule;
}
  • Auf diese Weise stürzt Ihr Code beim Aufrufen von IAP-Methoden nicht ab
  • Verwenden Sie beim Bereitstellen oder Testen von IAP den getrennten Zweig - oder überspringen Sie einfach die Zweige insgesamt und gehen Sie zu Rogue> :)

Die allgemeine Idee hier ist, dass exp detach nur einen Ordner /ios & /android auftaucht, damit Sie Ihr Projekt als RN-App verwenden können.
Sie erhalten weiterhin alle Funktionen einer regulären Expo-App. Verwenden Sie zum Bereitstellen einfach Fastlane, damit Sie nicht zu viel natives Material verwenden müssen.
Schließlich sind die Zweige nützlich, um SDK-Versionen zu aktualisieren. Wenn Sie aus irgendeinem Grund Probleme beim Aktualisieren haben, können Sie die Bibliothek einfach wieder trennen und erneut hinzufügen.

Die Frage ist, warum Sie überhaupt mit der Expo beginnen sollten.

@ ImArtur

Zumindest für mich ist es viel einfacher, mit der Expo-Entwicklungsumgebung zu arbeiten, als native Builds erstellen zu müssen. Ein kostenloser Push-Benachrichtigungsdienst für mehrere Plattformen mit einer einzigartigen Benutzeroberfläche ist ebenfalls sehr praktisch.

@ KevinColemanInc Ja. Ich verstehe, weil ich früher ein starker Expo-Benutzer war. Ich möchte wirklich, dass expo das Modul iap . Ich verstehe jedoch, dass es für die Expo nicht einfach ist, ihre Umgebung einschließlich der Funktion iap zu warten. Apple wird zunächst die App Expo Client im App Store ablehnen.

@dooboolab

Wie andere vorgeschlagen haben, wäre ich cool, wenn es nur zum Testen abgestumpft wäre. Ich mag nur Expo für die Entwicklererfahrung.

Ich denke darüber nach, es in Git in eine eigene Filiale auszubrechen und die Dev Branch Expo freundlich zu halten. Sobald die Zeit für die Bereitstellung gekommen ist, kann ich den ausgeworfenen Code zusammenführen, testen und die App bereitstellen.

@ImArtur die Frage ist "In App Kauf in Expo". Über die Vor- und Nachteile der Expo können Sie hier lesen: https://docs.expo.io/versions/latest/introduction/why-not-expo

@EvanBacon

Hallo und danke für diesen Bericht! Ich frage mich, ob Sie (nach dem Trennen) weiterhin mit exp oder mit xcode im Zweig "losgelöst" erstellen sollen. Vielen Dank!

@EvanBacon auch, wie

Wenn ich weiß, dass ich zu einem bestimmten Zeitpunkt der Entwicklung In-App-Käufe benötigen werde, sollte ich trotzdem CRNA verwenden? oder von Anfang an direkt zu RN native gehen?

Es sei denn natürlich, expo devs implementiert den In-App-Kauf von expo sehr bald.

@edoantonioco Ich habe diese Arbeit mit Expo bekommen. Ich erstelle nur eine Seite mit iap-Schaltflächen zum Kaufen von Artikeln und drücke diese Schaltflächen nur, wenn ich Einkäufe teste und mit Xcode baue. Ansonsten baue ich mit expo. Funktioniert super!

Entschuldigung für die Verspätung. Wenn Sie die Verbindung trennen, fügen Sie nativen Code hinzu und bauen ihn auf Ihrem Gerät auf. Sie verwenden diesen Build dann wie den Expo-Client (außer nur für Ihre einzelne App). Ich würde immer noch empfehlen, bei Expo zu bleiben. CRNA wird von Expo gepflegt und unser Fokus liegt hauptsächlich darauf, dass die Bibliotheken in dieser Umgebung funktionieren. Vanilla React Native erfordert viel unnötiges Setup und erfordert, dass Sie viel mehr über das Innenleben von Modulen wissen.

Hallo, jetzt, wo Sie das Thema ansprechen. Wenn in der App Einkäufe von Expo "schwer" zu handhaben sind. Was sind die vorgeschlagenen Roadmaps, um eine App zu monetarisieren, ohne sie von der Expo zu trennen, da ich wie viele andere die Expo für die Tatsache nutze, dass das Gesamterlebnis viel freundlicher als RN und weitaus weniger komplex ist, als auf beiden Plattformen nativ zu werden . Können Sie einfach ein Abonnement mit PayPal nutzen oder Zahlungen per Kreditkarte erhalten? Darf Google und Apple dies in Ihre Expo-App integrieren, indem Sie beispielsweise eine Webansicht verwenden? Vielen Dank.

@inglesuniversal

Wenn es irgendetwas wert ist, haben wir die Dumping Expo beendet, weil wir es satt hatten, auf die Lösung solcher Probleme zu warten.

Es erhöht definitiv die Reibung beim Testen und bei der Unterstützung einiger Funktionen (wie Benachrichtigungen), aber zumindest kann mein Entwickler aufhören, mir zu sagen, "das ist unmöglich, weil die Expo es nicht unterstützt".

Die Expo hat dies kürzlich über den Zukunftsplan für 2019 angekündigt. Dann können Sie native modules verknüpfen.

Ich habe versucht, den obigen Code von Laufen zu bringen , aber meine NativeModules sind leer und daher ist RNIapModule undefiniert. (mindestens unter iOS)

Sind andere auf dieses Problem gestoßen? Bedeutet das, dass ich nicht richtig verlinkt bin?

FWIW, reaktionsnativer Link scheint funktioniert zu haben ....

$ react-native link react-native-iap
rnpm-install info Linking react-native-iap ios dependency 
rnpm-install info Platform 'ios' module react-native-iap has been successfully linked 
rnpm-install info Linking react-native-iap android dependency 
rnpm-install info Platform 'android' module react-native-iap has been successfully linked 

Ich vermute jedoch, dass ich möglicherweise manuell verknüpfen muss, was ich bisher nicht konnte. Ich kann keinen Bibliotheksordner finden.
https://forums.expo.io/t/trouble-linking-with-expokit-unable-to-find-libraries-in-xcode/16710

@EvanBacon Hallo Herr,
Können Sie mir bitte Einzelheiten mitteilen?
Ich habe RN iap ausprobiert, ich habe es verlinkt
dann bin ich losgelöst.
dann gehe ich zu ios dir und starte pod install jetzt installiert es alles
Was soll ich als nächstes tun?
Vielen Dank

@cellis Kannst du mir mehr darüber erzählen, wie du die Inapp zum Laufen gebracht hast? Ich versuche es seit 1 Woche. Kannst du bitte den Code zeigen?
Vielen Dank
und hast du nach der pod-install mit expo oder xcode gebaut?
Vielen Dank

Mach alle die gleichen Sachen, die du normalerweise machen würdest
Wechseln Sie zurück zum Master, um js-Code hinzuzufügen
Wenn Sie in Master codieren, verpacken Sie Ihren IAP-Modulcode wie folgt:
@EvanBacon Was bedeuten die obigen Zeilen?

Einfach:

  • Erstelle einen neuen Zweig detached
  • Führen Sie exp detach
  • Mach alle die gleichen Sachen, die du normalerweise machen würdest
  • Wechseln Sie zurück zu master , um js-Code hinzuzufügen
  • Wenn Sie in master codieren, wickeln Sie Ihren IAP-Modulcode wie folgt ein:
import { NativeModules } from 'react-native';
const { RNIapModule } = NativeModules;
function hasIAP() {
  return !!NativeModules.RNIapModule;
}
  • Auf diese Weise stürzt Ihr Code beim Aufrufen von IAP-Methoden nicht ab
  • Verwenden Sie beim Bereitstellen oder Testen von IAP den getrennten Zweig - oder überspringen Sie einfach die Zweige insgesamt und gehen Sie zu Rogue> :)

Die allgemeine Idee hier ist, dass exp detach nur einen Ordner /ios & /android auftaucht, damit Sie Ihr Projekt als RN-App verwenden können.
Sie erhalten weiterhin alle Funktionen einer regulären Expo-App. Verwenden Sie zum Bereitstellen einfach Fastlane, damit Sie nicht zu viel natives Material verwenden müssen.
Schließlich sind die Zweige nützlich, um SDK-Versionen zu aktualisieren. Wenn Sie aus irgendeinem Grund Probleme beim Aktualisieren haben, können Sie die Bibliothek einfach wieder trennen und erneut hinzufügen.

Hallo Evan,
Danke für den Vorschlag. Ich habe den Rat befolgt und habe keine Fehler (ich habe react-native-iap manuell verknüpft). Die hasIAP-Funktion gibt jedoch false zurück, obwohl RNIap.initConnection (); gibt true zurück. Ich teste es mit diesem einfachen Code.

async componentDidMount() {
    try {
      const result = await RNIap.initConnection();
      console.log("hasIAP " + hasIAP())  // returns false
      console.log('result', result);   // returns true
    } catch (err) {
      console.warn(err.code, err.message);
    }
}

Wissen Sie, woran es liegen könnte? (Oder jemand, der dies liest)

Haben Sie laut den Dokumenten https://docs.expo.io/versions/v32.0.0/sdk/payments/ Zahlungen auf Ihrem Gerät eingerichtet? (Simulator wäre nicht sinnvoll, um dies zu testen)

Wie bei einem früheren Benutzer in diesem Beitrag ist es die beste Absicht von Expo für dieses erste Quartal, eine Möglichkeit zum Erstellen von Apps zu implementieren und native React Native-Bibliotheken importieren zu können. Im Moment wird eine Beta angezeigt, wenn ein neues Projekt mit der CLI gestartet wird. Hoffe das ist bald behoben.

Hey, es sieht so aus, als ob in letzter Zeit keine Aktivitäten zu diesem Thema stattgefunden haben. Wurde das Problem behoben oder erfordert es immer noch die Aufmerksamkeit der Community? Dieses Problem kann geschlossen werden, wenn keine weitere Aktivität auftritt. Sie können diese Ausgabe auch als "Zur Diskussion" oder "Gute erste Ausgabe" bezeichnen, und ich werde sie offen lassen. Vielen Dank für Ihre Beiträge.

Bitte halten Sie es offen und helfen Sie uns, einen Weg zu finden, wie dies ab Expo SDK Version 33.0 Realität wird

Hat jemand Updates zu diesem Thema?

https://docs.expo.io/versions/latest/sdk/in-app-purchases/

Update: Sorry, habe folgendes verpasst:

Dieses Modul ist derzeit nur im Bare-Workflow verfügbar.

@kkarkos Wenn Sie das In-App-

Wenn jemand eine gründlichere Anleitung geben kann, wie man das von uns beschriebene

@TheInternet Ich habe das gleiche Problem mit dem fehlenden Ordner "Libraries". Haben Sie herausgefunden, wie Sie dies unter iOS richtig installieren können?

@inglesuniversal
Ich bin interessant. Haben Sie interessante Möglichkeiten gefunden, eine App zu monetarisieren, ohne sie von der Messe zu trennen?

Können wir E-Payments mit webView verwenden? Ist es legal?

Soweit ich weiß, können Sie Lösungen von Drittanbietern als Web-App (wie Stripe oder PayPal) verwenden, im AppStore oder PlayStore jedoch nicht. Andernfalls wird Ihre App möglicherweise rausgeschmissen oder entfernt, bis Sie die API, auf die wir alle gewartet haben, seit ich Expo verwende, richtig ausgeführt haben.

Sie können Stripe oder Paypal in Ihrer App verwenden, solange Sie externe Waren und Dienstleistungen kaufen (z. B. wenn Sie ein Produkt bei Amazon kaufen oder in der Uber-App bezahlen), aber Sie können Stripe nicht zum Entsperren von App-Softwarefunktionen verwenden (z Verkauf von Spielmarken oder Premium-Funktionen)

Vielen Dank an KevinColemanInc für den Kommentar ... Wissen Sie zufällig, ob Sie Mitgliedschaften verkaufen oder wiederkehrende Zahlungen für Filmverleih, Cloud-Speicher, Online-Kurse leisten ... Kann dies extern mit Stripe oder PayPal in einer App bezahlt werden -> (PlayStore oder AppStore) ? Vielen Dank für Ihre Rückmeldung!

@inglesuniversal

Wenn Sie Features oder Funktionen in Ihrer App entsperren möchten (z. B. Abonnements, Währungen im Spiel, Spielstufen, Zugriff auf Premium-Inhalte oder Entsperren einer Vollversion)

Dies sind die Richtlinien von Apple:
https://developer.apple.com/app-store/review/guidelines/#in -app-purchase

Ich denke, das meiste, was Sie beschrieben haben, würde unter "Premium-Inhalte" fallen. Netflix muss die Apfelsteuer bezahlen .

Es sieht so aus, als ob Dropbox auch die Apfelsteuer zahlt, wenn Sie sich mit ihnen auf dem Handy anmelden. Ich würde Udemys App überprüfen, um zu sehen, ob sie auch IAP verwenden.

Hey, es sieht so aus, als ob in letzter Zeit keine Aktivitäten zu diesem Thema stattgefunden haben. Wurde das Problem behoben oder erfordert es immer noch die Aufmerksamkeit der Community? Dieses Problem kann geschlossen werden, wenn keine weitere Aktivität auftritt. Sie können diese Ausgabe auch als "Zur Diskussion" oder "Gute erste Ausgabe" bezeichnen, und ich werde sie offen lassen. Vielen Dank für Ihre Beiträge.

Einfach:

  • Erstelle einen neuen Zweig detached
  • Führen Sie exp detach
  • Mach alle die gleichen Sachen, die du normalerweise machen würdest
  • Wechseln Sie zurück zu master , um js-Code hinzuzufügen
  • Wenn Sie in master codieren, wickeln Sie Ihren IAP-Modulcode wie folgt ein:
import { NativeModules } from 'react-native';
const { RNIapModule } = NativeModules;
function hasIAP() {
  return !!NativeModules.RNIapModule;
}
  • Auf diese Weise stürzt Ihr Code beim Aufrufen von IAP-Methoden nicht ab
  • Verwenden Sie beim Bereitstellen oder Testen von IAP den getrennten Zweig - oder überspringen Sie einfach die Zweige insgesamt und gehen Sie zu Rogue> :)

Die allgemeine Idee hier ist, dass exp detach nur einen Ordner /ios & /android auftaucht, damit Sie Ihr Projekt als RN-App verwenden können.
Sie erhalten weiterhin alle Funktionen einer regulären Expo-App. Verwenden Sie zum Bereitstellen einfach Fastlane, damit Sie nicht zu viel natives Material verwenden müssen.
Schließlich sind die Zweige nützlich, um SDK-Versionen zu aktualisieren. Wenn Sie aus irgendeinem Grund Probleme beim Aktualisieren haben, können Sie die Bibliothek einfach wieder trennen und erneut hinzufügen.

Es tut mir leid, dass Sie so dicht sind, aber bedeutet dies, dass Sie den IAP-Code jedem Zweig separat hinzufügen (wenn Sie ihn für den Expo-Zweig "einpacken" müssen) und dann jedes Mal, wenn Sie ihn hinzufügen, einen neuen Zweig erneut auswerfen Expo-Code an den Master oder verschmelzen Sie zu irgendeinem Zeitpunkt Zweige ??! Und ist dies immer noch der beste Weg, um IAPs zu einer verwalteten Expo-App hinzuzufügen? Ich beende gerade meine erste große App und muss diese Funktionalität irgendwie hinzufügen. Es scheint vielleicht eine gute und sichere Option zu sein, sie in einem Zweig zu machen. Ich möchte nur sicherstellen, dass ich den Workflow verstehe! Ich muss auch sagen, ich liebe Expo! Es war eine großartige Möglichkeit, einheimisch zu reagieren, und ohne sie wäre ich nie so weit gekommen. Vielen Dank und weiter so !!!

Hey, es sieht so aus, als ob in letzter Zeit keine Aktivitäten zu diesem Thema stattgefunden haben. Wurde das Problem behoben oder erfordert es immer noch die Aufmerksamkeit der Community? Dieses Problem kann geschlossen werden, wenn keine weitere Aktivität auftritt. Sie können diese Ausgabe auch als "Zur Diskussion" oder "Gute erste Ausgabe" bezeichnen, und ich werde sie offen lassen. Vielen Dank für Ihre Beiträge.

Schließen dieses Problems nach längerer Inaktivität. Wenn dieses Problem in der neuesten Version noch vorhanden ist, können Sie ein neues Problem mit aktuellen Informationen erstellen.

Einfach:

  • Erstelle einen neuen Zweig detached
  • Führen Sie exp detach
  • Mach alle die gleichen Sachen, die du normalerweise machen würdest
  • Wechseln Sie zurück zu master , um js-Code hinzuzufügen
  • Wenn Sie in master codieren, wickeln Sie Ihren IAP-Modulcode wie folgt ein:
import { NativeModules } from 'react-native';
const { RNIapModule } = NativeModules;
function hasIAP() {
  return !!NativeModules.RNIapModule;
}
  • Auf diese Weise stürzt Ihr Code beim Aufrufen von IAP-Methoden nicht ab
  • Verwenden Sie beim Bereitstellen oder Testen von IAP den getrennten Zweig - oder überspringen Sie einfach die Zweige insgesamt und gehen Sie zu Rogue> :)

Die allgemeine Idee hier ist, dass exp detach nur einen Ordner /ios & /android auftaucht, damit Sie Ihr Projekt als RN-App verwenden können.
Sie erhalten weiterhin alle Funktionen einer regulären Expo-App. Verwenden Sie zum Bereitstellen einfach Fastlane, damit Sie nicht zu viel natives Material verwenden müssen.
Schließlich sind die Zweige nützlich, um SDK-Versionen zu aktualisieren. Wenn Sie aus irgendeinem Grund Probleme beim Aktualisieren haben, können Sie die Bibliothek einfach wieder trennen und erneut hinzufügen.

Es tut mir leid, dass Sie so dicht sind, aber bedeutet dies, dass Sie den IAP-Code jedem Zweig separat hinzufügen (wenn Sie ihn für den Expo-Zweig "einpacken" müssen) und dann jedes Mal, wenn Sie ihn hinzufügen, einen neuen Zweig erneut auswerfen Expo-Code an den Master oder verschmelzen Sie zu irgendeinem Zeitpunkt Zweige ??! Und ist dies immer noch der beste Weg, um IAPs zu einer verwalteten Expo-App hinzuzufügen? Ich beende gerade meine erste große App und muss diese Funktionalität irgendwie hinzufügen. Es scheint vielleicht eine gute und sichere Option zu sein, sie in einem Zweig zu machen. Ich möchte nur sicherstellen, dass ich den Workflow verstehe! Ich muss auch sagen, ich liebe Expo! Es war eine großartige Möglichkeit, einheimisch zu reagieren, und ohne sie wäre ich nie so weit gekommen. Vielen Dank und weiter so !!!

Hallo! Hast du die Antwort gefunden? Wie haben Sie es umgesetzt?

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen