Adapty Flutter SDK を v4.3 へ移行する
Adapty Flutter SDK 4.3 はデフォルトで Google Play のアプリ内メッセージを表示するようになり、一部のフローおよびオンボーディングイベントデータの Dart 型が変更されました。公開 API の削除や名称変更はないため、変更なしで 4.3 に対してアプリをコンパイルできます。動作を従来と同じに保つには、このガイドの各変更点を確認してください。
まだ 4.0 をお使いの場合は、まず v4.1 への移行 を完了してから、このガイドに進んでください。
クイックリファレンス
| v4.1 | v4.3 |
|---|---|
| Google Play メッセージはリクエストされない | Android ではデフォルトで Google Play メッセージが表示され、フローの上にも表示される |
フローイベントの整数パラメーターは Android で double として届く | 両プラットフォームで int として届く |
オンボーディングのメールフィールドは AdaptyOnboardingsTextInput として届く | AdaptyOnboardingsEmailInput として届く |
| オンボーディング入力を表示すると入力値が隠れる | 表示すると入力値が見える |
インストール
pubspec.yaml の adapty_flutter を v4.3 に更新してください:
dependencies:
adapty_flutter: ^4.3.0
アプリが Kids Mode を使用している場合は、代わりに adapty_flutter_kids を指定してください:
dependencies:
adapty_flutter_kids: ^4.3.0
動作要件は 4.1 から変更ありません:Flutter 3.32.0(Dart 3.8.0)および iOS 15.0。詳細なセットアップ手順は Adapty SDK のインストール をご覧ください。
Google Play のメッセージがデフォルトで表示される
4.3 以降、SDK は activate 後にアプリの Activity が開始されるたびに、支払い拒否通知などの Google Play アプリ内メッセージをリクエストします。これには、アプリがフォアグラウンドに戻るタイミングや、フローやオンボーディングが開いたり閉じたりするタイミングも含まれるため、ペイウォールの上にメッセージが表示される場合があります。
アプリにとってこれで問題なければ、変更は不要です。メッセージを表示するタイミングを制御したい場合は、Android で手動処理を有効にして SDK を起動し、アプリに適したタイミングで showStoreMessages を呼び出してください:
final configuration = AdaptyConfiguration(apiKey: 'YOUR_PUBLIC_SDK_KEY');
if (Platform.isAndroid) {
configuration.withStoreMessagesHandling(AdaptyStoreMessagesHandling.manual);
}
await Adapty().activate(configuration: configuration);
Android のみ手動処理を設定することで、iOS の動作を変えずに済みます。iOS 16 以降では、手動処理を設定すると、アプリが showStoreMessages を呼び出すまで App Store メッセージが保留されます。API の詳細については、ストアメッセージの制御を参照してください。
手動モードでは、ストアは自動的にメッセージを表示しません。アプリが showStoreMessages を呼び出さない限り、ユーザーに支払い拒否の通知が届くことはありません。
AndroidでのFlowイベントの数値パラメーターがintになりました
Androidでは、Flowのアナリティクスイベントの整数パラメーターがこれまでdoubleとして渡されていました。4.3以降は、iOSと同様にintとして渡されるようになります。これはflowViewDidReceiveAnalyticEventとAdaptyUIFlowPlatformViewのonDidReceiveAnalyticEventコールバック(フローの入力イベントの日時の値を含む)に影響します。
Androidではdoubleへのキャストが例外をスローするようになります。数値パラメーターはnumとして読み取ってください:
- final timestamp = params['value'] as double;
+ final timestamp = params['value'] as num;
オンボーディングのメールフィールドが AdaptyOnboardingsEmailInput として届くようになりました
4.3 以降、オンボーディングのメールフィールドは onboardingViewOnStateUpdatedAction および AdaptyUIOnboardingPlatformView の onStateUpdatedAction コールバックに AdaptyOnboardingsEmailInput として届くようになりました。以前は AdaptyOnboardingsTextInput として届いていました。テキストケースからメールを読み取るコードがある場合は、メールケースも処理するようにしてください。
switch (input) {
case AdaptyOnboardingsTextInput(:final value):
// text fields
break;
+ case AdaptyOnboardingsEmailInput(:final value):
+ // email fields
+ break;
case AdaptyOnboardingsNumberInput(:final value):
// number fields
break;
}
数値フィールドは AdaptyOnboardingsNumberInput として届くようになりました。4.3 以前は、更新がまったく届きませんでした。詳しくはオンボーディングのデータを処理するを参照してください。
オンボーディングの入力値が印刷出力に表示される
AdaptyOnboardingsInputParams または AdaptyOnboardingsInput を出力すると、入力された値が表示されるようになりました。アプリがこれらのオブジェクトをログに記録している場合は、ログを確認してください。ログに名前、メールアドレス、その他のユーザーが入力したデータが含まれる可能性があります。
4.3の新機能
これらの追加機能はコードの変更を必要としません:
- ストアメッセージの制御: App Store と Google Play のメッセージを表示するタイミングを設定します。
- プレースメントのプリロード:
preloadFlowsとpreloadFlowsForDefaultAudienceでフローキャッシュを事前に温めます。 - 保持したビューの解放:
destroy()メソッドは、dismiss(destroy: false)で保持したか、一度も表示しなかったフロービューを解放します。 - 12か月コミットメントプラン:
AdaptyProductSubscription.pricingTermsプロパティが iOS でのプランを表し、アクセスレベルはbillingPlanとcommitmentInfoを報告します。 - オブザーバーモード:
reportTransactionメソッドは iOS でオプションのappleJwsTransactionを受け取ります。