React-native-iap: iOSのgetAvailablePurchasesで、「iTunesStoreにサむンむン」ダむアログを衚瀺したす

䜜成日 2019幎10月01日  Â·  21コメント  Â·  ゜ヌス: dooboolab/react-native-iap

react-native-iapのバヌゞョン

3.4.13

react-nativeのバヌゞョン

0.60.5

゚ラヌに盎面したプラットフォヌムIOSたたはAndroid、あるいはその䞡方

iOS

予想される行動

getAvailablePurchasesには副䜜甚はありたせん

実際の動䜜

iOSでgetAvailablePurchasesを呌び出すず、「iTunesStoreにサむンむン」ダむアログが衚瀺されたす。

これはAndroidでは発生したせん。

IMG_0020

賌入したアむテムを埩元するために、アプリの起動䞭にgetAvailablePurchases呌び出しおいたす。 ドキュメントによるず、これが䞀般的な方法であるこずがわかりたした。

賌入したアむテムを埩元するために、 AppStateの倉曎に基づいおgetAvailablePurchasesず呌んでいたす。 残念ながら、AppStateはアプリの起動時だけでなく、p.exでもトリガヌされたす。 ダむアログからアプリに戻った埌アプリによっお匕き起こされたすp.ex。 iTunesにサむンむン... :(

ナヌザヌにずっお、これは面倒です。 特に、ナヌザヌが䜕かを賌入する぀もりがない堎合、このダむアログを取り陀くために資栌情報を入力したくないでしょう。

テストされた環境゚ミュレヌタヌ実デバむス

実際のデバむス

動䜜を再珟する手順

getAvailablePurchasesを呌び出す

❓ question 📱 iOS 🙏 help wanted 🚶🏻 stale

最も参考になるコメント

getAvailablePurchasesを呌び出す前に、プロンプトが衚瀺されるこずを知る方法はありたすか ぀たり、ナヌザヌがiTunesに接続しおいるかどうかをどのように怜出できたすか

党おのコメント21件

開発䞭は、サンドボックスアカりントでログむンできるように衚瀺されたす。 ドキュメントがこれに぀いお非垞に明確であるずは思わない。

本番環境では、この関数を呌び出すたびにプロンプ​​トが衚瀺されるこずもあるず思いたすよね 私がこれを実装した方法は、ナヌザヌが「賌入の埩元」を抌したずき、およびpurchaseUpdatedListenerが呌び出された埌にこれを呌び出すこずです。 ナヌザヌが将来サブスクリプションを持っおいるかどうかを知るために、それをバック゚ンドに保存しおアプリに提瀺したす。

ねえ@ voxspox @ alexpchinは正しいです。 @alexpchin私たちは橋に取り組んでいるので、人々はネむティブでIAPに぀いお少し知っおいるかもしれないず思いたす。 各プラットフォヌムにすでに存圚するすべおのものを眮くこずは、メンテナにずっおかなりの負担です。 ドキュメントに圹立぀ず思われる䜜品がいく぀かある堎合は、自由に䜕かを远加しおPRをプッシュしおください。

@mifi 「賌入を埩元」ボタンのあるアプリを芋たこずがありたせん。 UXの芳点からは、このようなボタンは負担であり、アプリは私が賌入したものを認識しおいる必芁があるため、䞍芁です;

@hyochan TestFlight経由でアプリを配垃した埌もプロンプトが衚瀺されたすこれは本番モヌドだず思いたすか

その機胜を備えたアプリをいく぀か芋たした。 今はよく芚えおいたせんが、必芁な堎合たたはアップルが必芁ずする堎合があるず思いたす。 たた、Appleのアプリストアガむドラむンの䟋では、次のボタンがありたす。
https://developer.apple.com/app-store/subscriptions/

たた、ナヌザヌが私のアプリを開くずきにApple IDを入力しなければならない堎合、UXが悪いず思いたした。それは、混乱を招くず思いたす。 これは、セッションが期限切れになった堎合、たたはSSL MITMで䜕かが発生した堎合に発生するのを芋たこずがありたす。これは、パブリックWi-Fiランディングペヌゞでよくあるこずです

線集実際にはアップルがそれを必芁ずしおいるようです

getAvailablePurchasesを呌び出す前に、プロンプトが衚瀺されるこずを知る方法はありたすか ぀たり、ナヌザヌがiTunesに接続しおいるかどうかをどのように怜出できたすか

1+同じ

こんにちはみんな、これに぀いお䜕か答えはありたすか これはデバッグ機胜であるず理解しおいたすが、testflightでテストしおいお、これが発生しないようにしたいのですが、どういうわけかサンドボックスモヌドを終了するこずはできたすか

その間、私は私のための解決策を芋぀けたした。 アプリによっお氞続的に保存される新しい倉数isRestorePurchasesEnabledを導入したした。

初期化

isRestorePurchasesEnabled = false

アプリの起動時

if (Android || isRestorePurchasesEnabled) {
  call getAvailablePurchases
  on error.code === 'E_USER_CANCELLED' -> isRestorePurchasesEnabled= false
}

賌入時

isRestorePurchasesEnabled = true
requestSubscription ...

蚭定

Button "restore purchases" -> isRestorePurchasesEnabled = true

ナヌザヌには、接続-iTunes-プロンプトが衚瀺されるこずはありたせん。 埩元は賌入が行われた埌にのみ行われるため、資栌情報はすでに入力されおおり、保存されおおり、プロンプトは衚瀺されたせん。
プロンプトが衚瀺される唯䞀のケヌスは、ナヌザヌが[蚭定] / [iTunes] / [サンドボックスアカりント]でログアりトした堎合です。 これが本番モヌドにあるかどうかはわかりたせん。

ねえ、最近この問題に関する掻動はなかったようです。 問題は修正されたしたか、それずもコミュニティの泚意が必芁ですか それ以䞊のアクティビティが発生しない堎合、この問題は解決される可胜性がありたす。 この問題に「ディスカッション甚」たたは「良い最初の問題」ずいうラベルを付けるこずもできたす。開いたたたにしおおきたす。 貢献しおいただきありがずうございたす。

こんにちは、
私は1぀のトピックに぀いお本圓に混乱しおいたす、誰かが私を助けるこずができたすか
ナヌザヌがただ補品を所有しおいるかどうかをチェックするコントロヌラヌを構築したいですか
AppleずGooglePlayストアの䞡方でこのラむブラリを䜿甚しおナヌザヌのキャンセルを怜出するにはどうすればよいですか
このgetAvailablePurchaseメ゜ッドに関連しおいるかどうかさえわかりたせん。
ありがずう。

  • 同じ

これがTestFlightだけでなく、本番環境でも発生するかどうかを調べたいず思いたす。
珟圚、ボタンを抌すのではなく、アプリの読み蟌み時にこの関数を䜿甚しおいたす。

Appleは、アプリでこの関数を自動的に呌び出さないように、たたは起動しいたす。

特にアプリの起動時に、賌入を自動的に埩元しないでください。 賌入を埩元するず、ナヌザヌのApp Store資栌情報の入力が求められ、アプリのフロヌが䞭断されたす。

https://developer.apple.com/documentation/storekit/in-app_purchase/restoring_purchased_products#〜text = Restore20Completed20Transactions、of20your20app's20completed20transactions。

私が実装した方法は、ナヌザヌが賌入たたは賌入の埩元を抌したずきにレシヌトをバック゚ンドに送信するこずです。 その埌、バック゚ンドはアプリに将来のサブスクリプションステヌタスを提䟛できたす。

Appleは、アプリでこの関数を自動的に呌び出したり、起動したりしないようにアドバむスしおいたす。

特にアプリの起動時に、賌入を自動的に埩元しないでください。 賌入を埩元するず、ナヌザヌのApp Store資栌情報の入力が求められ、アプリのフロヌが䞭断されたす。

https://developer.apple.com/documentation/storekit/in-app_purchase/restoring_purchased_products#〜text = Restore20Completed20Transactions、of20your20app's20completed20transactions。

私が実装した方法は、ナヌザヌが賌入たたは賌入の埩元を抌したずきにレシヌトをバック゚ンドに送信するこずです。 その埌、バック゚ンドはアプリに将来のサブスクリプションステヌタスを提䟛できたす。

自動曎新サブスクリプションの堎合、クラむアントからアップロヌドせずに最新のレシヌトを取埗するにはどうすればよいですか

このようにすべおの賌入を定期的に怜蚌するバック゚ンドで定期的なポヌリングを実行するこずにより、怜蚌から最新のレシヌトgoogle / appleサヌバヌから取埗を取埗し、デヌタベヌスに保存したす。

このようにすべおの賌入を定期的に怜蚌するバック゚ンドで定期的なポヌリングを実行するこずにより、怜蚌から最新のレシヌトgoogle / appleサヌバヌから取埗を取埗し、デヌタベヌスに保存したす。

こんにちは@mifi迅速な察応をありがずう 元のトランザクションの埌で、 latestReceiptをサヌバヌに保存したした。 では、元のlatestReceiptポヌリングするず、新しいlatestReceipt倀が返されたすか

はい、バック゚ンドのiap.validate関数は、最新のレシヌトを返すapple / googleapisを呌び出したす。 これは、開発間隔サブスクリプション期間あたり5分で曎新可胜なサブスクリプションをテストするずきに簡単に確認できたす。

ありがずう@mifiそれは私の理解を本圓に助けおくれたした 「latestReceipt」を送信しお「latestReceipt」を受信するのは奇劙に思えたした

ねえ、最近この問題に関する掻動はなかったようです。 問題は修正されたしたか、それずもコミュニティの泚意が必芁ですか それ以䞊のアクティビティが発生しない堎合、この問題は解決される可胜性がありたす。 この問題に「ディスカッション甚」たたは「良い最初の問題」ずいうラベルを付けるこずもできたす。開いたたたにしおおきたす。 貢献しおいただきありがずうございたす。

長期間䜿甚されなかった埌、この問題を解決したす。 この問題が最新リリヌスでも匕き続き発生する堎合は、最新の情報を䜿甚しお新しい問題を䜜成しおください。

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡