ÿÿ Adapty React Native SDK v4.0(ベータ版)ã¸ã®ç§»è¡Œ | Adapty ドキュメント

Adapty React Native SDK ã‚’ v. 4.0 ã«ç§»è¡Œã™ã‚‹

Adapty React Native SDK 4.0(ベータ版)ã§ã¯ãƒ•ローãŒå°Žå…¥ã•れã€ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ« API ã®åç§°ãŒå¤‰æ›´ã•れã¾ã—ãŸã€‚æ–°ã—ã„ API ã¯ãƒ•ãƒ­ãƒ¼ãƒ“ãƒ«ãƒ€ãƒ¼ã¨æ—¢å­˜ã®ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ãƒ“ルダーã®ä¸¡æ–¹ã«å¯¾å¿œã—ã¦ãŠã‚Šã€Adapty ダッシュボードå´ã§ã®è¨­å®šå¤‰æ›´ã¯ä¸è¦ã§ã™ã€‚

クイックリファレンス

v3v4
adapty.getPaywall(placementId, locale?, params?)adapty.getFlow(placementId, params?)
adapty.getPaywallForDefaultAudience(placementId, locale?, params?)adapty.getFlowForDefaultAudience(placementId, params?)
adapty.getPaywallProducts(paywall)adapty.getPaywallProducts(flow)
adapty.logShowPaywall(paywall)adapty.logShowFlow(flow)
AdaptyPaywall(型)AdaptyFlow
createPaywallView(paywall)createFlowView(flow)
AdaptyPaywallView(コンãƒãƒ¼ãƒãƒ³ãƒˆï¼‰AdaptyFlowView
EventHandlers(型)FlowEventHandlers
onPaywallShownonAppeared
onPaywallClosedonDisappeared
onRenderingFailedonError
AdaptyPaywallProduct ã¯ãã®åå‰ã‚’ç¶­æŒã—ã¦ã„ã¾ã™ — プロダクトã¯å¼•ãç¶šãフローã«å±žã—ã¦ãŠã‚Šã€getPaywallProducts 㯠AdaptyFlow を引数ã¨ã—ã¦å—ã‘å–るよã†ã«ãªã‚Šã¾ã—ãŸã€‚getFlow ãŠã‚ˆã³ getFlowForDefaultAudience メソッド㯠locale パラメータをå—ã‘å–らãªããªã‚Šã¾ã—ãŸã€‚ビューメソッド㮠presentã€dismissã€setEventHandlersã€showDialogã€ãŠã‚ˆã³ã‚¤ãƒ™ãƒ³ãƒˆãƒãƒ³ãƒ‰ãƒ©ã® onCloseButtonPressã€onUrlPressã€onCustomActionã€onProductSelectedã€onPurchaseStartedã€onPurchaseCompletedã€onPurchaseFailedã€onRestoreStartedã€onRestoreCompletedã€onRestoreFailedã€onLoadingProductsFailedã€onWebPaymentNavigationFinishedã€onAndroidSystemBack ã¯ã„ãšã‚Œã‚‚ v3 ã¨åŒã˜åå‰ã‚’ç¶­æŒã—ã¦ã„ã¾ã™ã€‚デフォルトã®å‹•作ã«ä¸€éƒ¨å¤‰æ›´ãŒã‚りã¾ã™ — 詳細ã¯ãƒ‡ãƒ•ォルト動作ã®å¤‰æ›´ã‚’å‚ç…§ã—ã¦ãã ã•ã„。

最低 iOS ãƒãƒ¼ã‚¸ãƒ§ãƒ³

Adapty React Native SDK 4.0 ã§ã¯ã€iOS ã®æœ€ä½Žãƒ‡ãƒ—ロイメントターゲット㌠iOS 13.0 ã‹ã‚‰ iOS 15.0 ã«å¼•ã上ã’られã¾ã—ãŸã€‚アップグレードã®å‰ã«ã€iOS デプロイメントターゲットを 15.0 以é™ã«è¨­å®šã—ã¦ãã ã•ã„。

インストール

パッケージã®ã‚¢ãƒƒãƒ—デート

v4.0 ã¯ãƒ—レリリース版ã®ãŸã‚ã€æ­£ç¢ºãªãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’指定ã—ã¦ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã—ã¦ãã ã•ã„。npm ã¯ã‚­ãƒ£ãƒ¬ãƒƒãƒˆ/ãƒãƒ«ãƒ€ã®ç¯„囲指定ã§ã¯ãƒ—ãƒ¬ãƒªãƒªãƒ¼ã‚¹ç‰ˆã‚’é¸æŠžã—ã¾ã›ã‚“。

npm install react-native-adapty@4.0.0
# or
yarn add react-native-adapty@4.0.0

iOS:ãƒã‚¤ãƒ†ã‚£ãƒ– SDK ㌠Swift Package Manager çµŒç”±ã§æä¾›ã•れるよã†ã«ãªã‚Šã¾ã—ãŸ

CocoaPods ã® spec リãƒã‚¸ãƒˆãƒªã¯ 2026å¹´12月ã«èª­ã¿å–り専用ã«ãªã‚Šã¾ã™ã€‚ãã®ãŸã‚ã€v4 以é™ã€ãƒã‚¤ãƒ†ã‚£ãƒ–ã® Adaptyã€AdaptyUIã€AdaptyPlugin SDK 㯠CocoaPods ã®ã‚µãƒ–ä¾å­˜ã¨ã—ã¦å–å¾—ã•れãªããªã‚Šã¾ã™ — podspec 㯠Swift Package Manager 経由(spm_dependency ヘルパーを使用)ã§ã“れらをå–å¾—ã—ã¾ã™ã€‚ã“れã«ã‚ˆã‚Šã€ä»¥ä¸‹ã® 2 点ãŒå¿…è¦ã«ãªã‚Šã¾ã™ï¼š

  • React Native 0.75 ä»¥é™ â€” spm_dependency podspec ヘルパーã«å¿…è¦ã§ã™ã€‚å¤ã„ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã§ã¯ pod install ãŒæ˜Žç¤ºçš„ãªã‚¨ãƒ©ãƒ¼ã§å¤±æ•—ã—ã¾ã™ã€‚先㫠React Native をアップグレードã™ã‚‹ã‹ã€react-native-adapty 3.x を使用ã—ã¦ãã ã•ã„。
  • ダイナミックフレームワーク — SPM ã®ä¾å­˜é–¢ä¿‚ã«ã¯ãƒ€ã‚¤ãƒŠãƒŸãƒƒã‚¯ãƒªãƒ³ã‚¯ãŒå¿…è¦ã§ã™ã€‚有効ã«ã™ã‚‹æ–¹æ³•㯠Expo ã¨ãƒ™ã‚¢ã® React Native ã§ç•°ãªã‚Šã¾ã™ã€‚

Expo

expo-build-properties 設定プラグインを追加ã—ã€app.json(ã¾ãŸã¯ app.config.js)㧠iOS フレームワークをダイナミックã«è¨­å®šã—ã¾ã™ï¼š

{
  "expo": {
    "plugins": [
      [
        "expo-build-properties",
        {
          "ios": {
            "useFrameworks": "dynamic"
          }
        }
      ]
    ]
  }
}

次ã«ã€ãƒ—ラグインをインストールã—ã¦ãƒã‚¤ãƒ†ã‚£ãƒ–プロジェクトをå†ç”Ÿæˆã—ã¾ã™ï¼š

npx expo install expo-build-properties
npx expo prebuild --clean

Bare React Native

iOS ターゲットã«ãƒ€ã‚¤ãƒŠãƒŸãƒƒã‚¯ãƒ•レームワークを追加ã—ã€pod ã‚’å†ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã—ã¾ã™ï¼š

use_frameworks! :linkage => :dynamic
cd ios && pod install --repo-update

以å‰ã« Adaptyã€AdaptyUIã€ã¾ãŸã¯ AdaptyPlugin ã‚’ CocoaPods ã®ã‚µãƒ–ä¾å­˜é–¢ä¿‚ã¨ã—ã¦è¿½åŠ ã—ã¦ã„ãŸå ´åˆã¯ã€ã¾ãš Podfile ã‹ã‚‰ pod 'Adapty'ã€pod 'AdaptyUI'ã€pod 'AdaptyPlugin' ã®è¡Œã‚’削除ã—ã¦ãã ã•ã„。

デフォルトã®é™çš„リンクã‹ã‚‰ãƒ€ã‚¤ãƒŠãƒŸãƒƒã‚¯ãƒ•レームワークã¸ã®åˆ‡ã‚Šæ›¿ãˆã¯ã€ãƒ¢ã‚¸ãƒ¥ãƒ©ãƒ¼ãƒ˜ãƒƒãƒ€ãƒ¼ã‚’ã¾ã ã‚µãƒãƒ¼ãƒˆã—ã¦ã„ãªã„ライブラリã¨ç«¶åˆã™ã‚‹å¯èƒ½æ€§ãŒã‚りã€Flipper ã¨ã¯äº’æ›æ€§ãŒã‚りã¾ã›ã‚“。ビルドã®å•題ãŒç™ºç”Ÿã—ãŸå ´åˆã¯ã€Swift Package Manager 㨠React Native ライブラリã®çµ±åˆã«é–¢ã™ã‚‹è¨˜äº‹ã‚’å‚ç…§ã—ã¦ãã ã•ã„。

完全ãªã‚»ãƒƒãƒˆã‚¢ãƒƒãƒ—手順ã«ã¤ã„ã¦ã¯ã€Adapty SDK ã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã‚’å‚ç…§ã—ã¦ãã ã•ã„。

フローã®å–å¾—

getPaywall → getFlow

返り値ã®åž‹ãŒ AdaptyPaywall ã‹ã‚‰ AdaptyFlow ã«å¤‰æ›´ã•れã€locale パラメータãŒå‰Šé™¤ã•れã¾ã—ãŸã€‚フローをレンダリングã™ã‚‹éš›ã€ãƒ­ã‚±ãƒ¼ãƒ«ã¯è‡ªå‹•çš„ã«è§£æ±ºã•れã¾ã™ã€‚カスタムペイウォールã®å ´åˆã€ã™ã¹ã¦ã®ãƒ­ã‚±ãƒ¼ãƒ«ã¯ flow.remoteConfigs ã§è¿”ã•れã¾ã™ã€‚

- const paywall = await adapty.getPaywall('YOUR_PLACEMENT_ID', 'en');
+ const flow = await adapty.getFlow('YOUR_PLACEMENT_ID');

getPaywallForDefaultAudience ã‚‚åŒæ§˜ã«ãƒªãƒãƒ¼ãƒ ã•れã¾ã™ã€‚

- const paywall = await adapty.getPaywallForDefaultAudience('YOUR_PLACEMENT_ID', 'en');
+ const flow = await adapty.getFlowForDefaultAudience('YOUR_PLACEMENT_ID');

getPaywallProducts(paywall) → getPaywallProducts(flow)

getPaywallProducts ã¯åå‰ã¯ãã®ã¾ã¾ã§ã™ãŒã€AdaptyFlow ã‚’å—ã‘å–るよã†ã«ãªã‚Šã¾ã—ãŸï¼š

- const products = await adapty.getPaywallProducts(paywall);
+ const products = await adapty.getPaywallProducts(flow);

データモデル

getFlow 㯠AdaptyPaywall ã®ä»£ã‚り㫠AdaptyFlow ã‚’è¿”ã—ã€ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã®æ§‹é€ ãŒå¤‰ã‚りã¾ã—ãŸï¼š

v3 AdaptyPaywall フィールドv4 AdaptyFlow フィールド対応方法
remoteConfig?(å˜ä¸€ï¼‰remoteConfigs?: AdaptyRemoteConfig[](é…列)フローã¯è¨­å®šã•れãŸè¨€èªžã”ã¨ã«ãƒªãƒ¢ãƒ¼ãƒˆã‚³ãƒ³ãƒ•ィグを1ã¤æŒã¡ã¾ã™ã€‚ユーザーã«åˆã£ãŸã‚‚ã®ã‚’å–å¾—ã™ã‚‹ã«ã¯ flow.remoteConfigs?.find((c) => c.lang === 'en') を使用ã—ã¦ãã ã•ã„。
productsflow.paywalls[i].productIdentifiersプロダクト識別å­ã¯ãƒ•ロー全体ã§ã¯ãªãã€å„フローãƒãƒªã‚¨ãƒ¼ã‚·ãƒ§ãƒ³ã«ç§»å‹•ã—ã¾ã—ãŸã€‚
webPurchaseUrl?flow.paywalls[i].webPurchaseUrlフローã‹ã‚‰ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã®å„ãƒãƒªã‚¨ãƒ¼ã‚·ãƒ§ãƒ³ã«ç§»å‹•ã—ã¾ã—ãŸã€‚
version?: numberflowVersionId?: stringåå‰ãŒå¤‰æ›´ã•れã€åž‹ã‚‚ number ã‹ã‚‰ string ã«ãªã‚Šã¾ã—ãŸã€‚
hasViewConfiguration削除コードã‹ã‚‰ hasViewConfiguration ã®ãƒã‚§ãƒƒã‚¯ã‚’ã™ã¹ã¦å‰Šé™¤ã—ã¦ãã ã•ã„。
requestLocale削除ロケールã¯ãƒ¢ãƒ‡ãƒ«ã«å«ã¾ã‚Œãªããªã‚Šã¾ã—ãŸã€‚
(新è¦ï¼‰paywalls: AdaptyFlowPaywall[]å„エントリã¯ãƒ•ロー内ã®ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ãƒãƒªã‚¨ãƒ¼ã‚·ãƒ§ãƒ³1ã¤ã«å¯¾å¿œã—ã¾ã™ã€‚
(新è¦ï¼‰responseCreatedAt: numberサーãƒãƒ¼ãƒ¬ã‚¹ãƒãƒ³ã‚¹ã®ã‚¿ã‚¤ãƒ ã‚¹ã‚¿ãƒ³ãƒ—(ミリ秒å˜ä½ï¼‰ã€‚
プロダクト識別å­ãŒãƒ•ローã‹ã‚‰å„ãƒãƒªã‚¢ãƒ³ãƒˆã«ç§»å‹•ã—ã¾ã—ãŸï¼š
- const ids = paywall.products;
+ const ids = flow.paywalls[0].productIdentifiers;

Webペイウォールã®ãƒ¡ã‚½ãƒƒãƒ‰

openWebPaywall 㨠createWebPaywallUrl ã¯ãƒ¡ã‚½ãƒƒãƒ‰åを変更ã—ã¾ã›ã‚“ãŒã€ç¬¬1引数㌠AdaptyPaywall ã®ä»£ã‚り㫠AdaptyFlowPaywall(フローã®ãƒãƒªã‚¢ãƒ³ãƒˆï¼‰ã«ãªã‚Šã¾ã—ãŸã€‚引ãç¶šã AdaptyPaywallProduct も渡ã›ã¾ã™ã€‚

  const flow = await adapty.getFlow('YOUR_PLACEMENT_ID');
- await adapty.openWebPaywall(paywall);
+ await adapty.openWebPaywall(flow.paywalls[0]);

フローã®ãƒ“ュー数を計測ã™ã‚‹

logShowPaywall → logShowFlow

logShowPaywall 㯠logShowFlow ã«å称変更ã•れã€AdaptyFlow ã‚’å—ã‘å–るよã†ã«ãªã‚Šã¾ã—ãŸã€‚イベントã¯å¼•ãç¶šãåŒã˜ãƒãƒªã‚¨ãƒ¼ã‚·ãƒ§ãƒ³ã«å¯¾ã—ã¦ãƒ­ã‚°ãŒè¨˜éŒ²ã•れるãŸã‚ã€æ—¢å­˜ã®ãƒ•ã‚¡ãƒãƒ«ã‚„ A/B ãƒ†ã‚¹ãƒˆã®æŒ‡æ¨™ã¯ãƒ€ãƒƒã‚·ãƒ¥ãƒœãƒ¼ãƒ‰ã®å¤‰æ›´ãªã—ã«å¼•ãç¶šãæ©Ÿèƒ½ã—ã¾ã™ã€‚

- await adapty.logShowPaywall(paywall);
+ await adapty.logShowFlow(flow);

v3 ã¨åŒæ§˜ã«ã€ãƒ•ロービルダーやペイウォールビルダーã§ãƒ¬ãƒ³ãƒ€ãƒªãƒ³ã‚°ã•れãŸãƒ•ローやペイウォールを表示ã™ã‚‹éš›ã¯ã€ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã‚’呼ã³å‡ºã™å¿…è¦ã¯ã‚りã¾ã›ã‚“。Adapty ãŒãれらã®ãƒ“ューを自動的ã«è¿½è·¡ã—ã¾ã™ã€‚

フローã®è¡¨ç¤º

createPaywallView → createFlowView

ファクトリー関数ã®åå‰ã‚’変更ã—ã€AdaptyFlow を渡ã—ã¾ã™ã€‚è¿”ã•れるコントローラーã®ãƒ¡ã‚½ãƒƒãƒ‰ï¼ˆpresentã€dismissã€setEventHandlersã€showDialog)ã¯å¤‰ã‚りã¾ã›ã‚“:

- import { createPaywallView } from 'react-native-adapty';
+ import { createFlowView } from 'react-native-adapty';

- const view = await createPaywallView(paywall);
+ const view = await createFlowView(flow);
  await view.present();

AdaptyPaywallView → AdaptyFlowView

Reactコンãƒãƒ¼ãƒãƒ³ãƒˆã§ãƒ¬ãƒ³ãƒ€ãƒªãƒ³ã‚°ã™ã‚‹å ´åˆã¯ã€åå‰ã‚’変更ã—㦠flow プロップを渡ã—ã¦ãã ã•ã„:

- import { AdaptyPaywallView } from 'react-native-adapty';
+ import { AdaptyFlowView } from 'react-native-adapty';

- <AdaptyPaywallView paywall={paywall} /* … */ />
+ <AdaptyFlowView flow={flow} /* … */ />

createFlowView ã§ä½œæˆã—ãŸãƒ•ロービューã¯ä½¿ã„æ¨ã¦ã§ã™ã€‚dismiss() を呼ã³å‡ºã™ã¨ãƒ“ューãŒç ´æ£„ã•れるãŸã‚ã€ãƒ•ローをå†åº¦è¡¨ç¤ºã™ã‚‹ã«ã¯ createFlowView ã‚’å†åº¦å‘¼ã³å‡ºã—ã¦ãã ã•ã„。埋ã‚è¾¼ã¿åž‹ã® AdaptyFlowView ã¯ã‚¢ãƒ³ãƒžã‚¦ãƒ³ãƒˆã™ã‚‹ã“ã¨ã§é–‰ã˜ã‚‰ã‚Œã¾ã™ã€‚ãƒãƒ³ãƒ‰ãƒ©ãƒ¼ã‹ã‚‰ true ã‚’è¿”ã—ã¦ã‚‚埋ã‚è¾¼ã¿ãƒ“ューã¯é–‰ã˜ãªã„ãŸã‚ã€onCloseButtonPress ãªã©ã§è‡ªåˆ†è‡ªèº«ã®çŠ¶æ…‹ã‚’å¤‰æ›´ã—ã¦ãã ã•ã„。

イベントã®å‡¦ç†

イベントãƒãƒ³ãƒ‰ãƒ©ãƒ¼ã®ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェースå㌠EventHandlers ã‹ã‚‰ FlowEventHandlers ã«å¤‰æ›´ã•れã€3ã¤ã®ã‚³ãƒ¼ãƒ«ãƒãƒƒã‚¯ã‚‚åå‰ãŒå¤‰ã‚りã¾ã—ãŸã€‚既存ã®ãƒãƒ³ãƒ‰ãƒ©ãƒ¼ã®ä¸­èº«ã¯ãã®ã¾ã¾ã§ã€åå‰ã ã‘変更ã—ã¦ãã ã•ã„。

- onPaywallShown: () => { /* … */ },
+ onAppeared: () => { /* … */ },

- onPaywallClosed: () => { /* … */ },
+ onDisappeared: () => { /* … */ },

- onRenderingFailed: (error) => { /* … */ },
+ onError: (error) => { /* … */ },

ä»–ã®ã™ã¹ã¦ã®ã‚¤ãƒ™ãƒ³ãƒˆãƒãƒ³ãƒ‰ãƒ©ãƒ¼ã¯åå‰ãŒå¤‰ã‚りã¾ã›ã‚“。ã¾ãŸã€2ã¤ã®ãƒãƒ³ãƒ‰ãƒ©ãƒ¼ã¯ç¬¬2引数ãŒè¿½åŠ ã•れã¾ã—ãŸï¼šonPurchaseCompleted 㯠(purchaseResult, product)ã€onPurchaseFailed 㯠(error, product) ã¨ãªã‚Šã€product ã¯å¯¾è±¡ã® AdaptyPaywallProduct ã§ã™ã€‚完全ãªä¸€è¦§ã¯ãƒ•ロー・ペイウォールイベントã®å‡¦ç†ã‚’å‚ç…§ã—ã¦ãã ã•ã„。

onDisappeared ã¯ã€createFlowView().present() ã§ãƒ¢ãƒ¼ãƒ€ãƒ«è¡¨ç¤ºã•れãŸãƒ•ローã«ã®ã¿ç™ºç«ã—ã¾ã™ã€‚AdaptyFlowView コンãƒãƒ¼ãƒãƒ³ãƒˆã¯ã“れをプロップã¨ã—ã¦å…¬é–‹ã—ã¦ã„ãªã„ãŸã‚ã€çµ„ã¿è¾¼ã¿ãƒ“ューを閉ã˜ã‚‹ã«ã¯ã‚¢ãƒ³ãƒžã‚¦ãƒ³ãƒˆã—ã¦ãã ã•ã„。

v4ã§ã¯ã•らã«ã€ã‚ªãƒ—トインã§ä½¿ç”¨ã§ãる機能ãŒã„ãã¤ã‹è¿½åŠ ã•れã¦ã„ã¾ã™ï¼š

  • adapty.openWebUrl(url, openIn?) ãŠã‚ˆã³ adapty.requestAppReview() メソッド — ã“れらã¯ãƒ‡ãƒ•ォルト㮠onUrlPress ãŠã‚ˆã³ onRequestAppReview ãƒãƒ³ãƒ‰ãƒ©ãƒ¼ã‚’支ãˆã¦ãŠã‚Šã€URLãŠã‚ˆã³ã‚¢ãƒ—リレビューã®ãƒ—ロンプトã¯ãã®ã¾ã¾ãƒã‚¤ãƒ†ã‚£ãƒ–ã§å‡¦ç†ã•れã¾ã™ã€‚ã“れらã®ãƒãƒ³ãƒ‰ãƒ©ãƒ¼ã‚’オーãƒãƒ¼ãƒ©ã‚¤ãƒ‰ã™ã‚‹å ´åˆã«ã®ã¿ã€ç›´æŽ¥å‘¼ã³å‡ºã—ã¦ãã ã•ã„。
  • フロー内ã®ã‚ªãƒ–ザーãƒãƒ¼ãƒ¢ãƒ¼ãƒ‰ã«ã‚ˆã‚‹è³¼å…¥å‡¦ç†ã¯ã€æ–°ã—ã„ onObserverPurchaseInitiated / onObserverRestoreInitiated ãƒãƒ³ãƒ‰ãƒ©ãƒ¼ã‚’使用ã—ã¾ã™ã€‚詳ã—ãã¯ã‚ªãƒ–ザーãƒãƒ¼ãƒ¢ãƒ¼ãƒ‰ã§ã®è³¼å…¥å‡¦ç†ã‚’ã”覧ãã ã•ã„。

å‰Šé™¤ãƒ»éžæŽ¨å¥¨ã®API

setFallbackPaywalls → setFallback

setFallbackPaywalls ã¯å‰Šé™¤ã•れã¾ã—ãŸã€‚代ã‚りã«åŒã˜å¼•æ•°ã‚’å—ã‘å–ã‚‹ setFallback を使用ã—ã¦ãã ã•ã„:

- await adapty.setFallbackPaywalls(fileLocation);
+ await adapty.setFallback(fileLocation);

削除ã•れãŸã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ

以下ã®ã‚·ãƒ³ãƒœãƒ«ã¯ react-native-adapty ã‹ã‚‰ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆã•れãªããªã‚Šã¾ã—ãŸã€‚ã“れらã®ã‚¤ãƒ³ãƒãƒ¼ãƒˆã¯å‰Šé™¤ã—ã¦ãã ã•ã„:

  • AdaptyPaywall: 代ã‚り㫠AdaptyFlow を使用ã—ã¦ãã ã•ã„。
  • ProductReference: 代ã‚り㫠AdaptyProductIdentifier を使用ã—ã€flow.paywalls[i].productIdentifiers ã‹ã‚‰èª­ã¿å–ã£ã¦ãã ã•ã„。
  • AdaptyPaywallBuilder: 削除ã•れã¾ã—ãŸã€‚フローã¨ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã¯ãƒã‚¤ãƒ†ã‚£ãƒ–ã§ãƒ¬ãƒ³ãƒ€ãƒªãƒ³ã‚°ã•れã¾ã™ã€‚
  • AdaptyAndroidSubscriptionUpdateParameters: ãƒã‚¹ãƒˆã•れ㟠subscriptionUpdateParams ã®å½¢å¼ã‚’使用ã—ã¦ãã ã•ã„(下記å‚照)。

activate: lockMethodsUntilReady

lockMethodsUntilReady ã¯å‰Šé™¤ã•れã€ã“ã®å‹•作ã¯å¸¸ã«æœ‰åйã«ãªã‚Šã¾ã—ãŸã€‚activate ã®å‘¼ã³å‡ºã—ã‹ã‚‰å‰Šé™¤ã—ã¦ãã ã•ã„。残ã—ã¦ã„ã‚‹ã¨ã‚³ãƒ³ãƒ‘イルエラーã«ãªã‚Šã¾ã™:

- await adapty.activate('PUBLIC_SDK_KEY', { lockMethodsUntilReady: true });
+ await adapty.activate('PUBLIC_SDK_KEY');

makePurchase: Android ã‚µãƒ–ã‚¹ã‚¯ãƒªãƒ—ã‚·ãƒ§ãƒ³ã®æ›´æ–°

フラット㪠Android サブスクリプション更新ã®å½¢å¼ã¯å»ƒæ­¢ã•れã¾ã—ãŸã€‚oldSubVendorProductId 㨠prorationMode ã‚’ãƒã‚¹ãƒˆã•れ㟠subscriptionUpdateParams オブジェクトã«ç§»å‹•ã—ã€isOfferPersonalized ã¯ãƒˆãƒƒãƒ—ãƒ¬ãƒ™ãƒ«ã«æ®‹ã—ã¦ãã ã•ã„。完全ãªä¾‹ã«ã¤ã„ã¦ã¯è³¼å…¥ã®å®Ÿè£…ã‚’å‚ç…§ã—ã¦ãã ã•ã„。

Android: セーフエリアã®ãƒ‘ディング

Android ã®ãƒ–ール型リソース <bool name="adapty_paywall_enable_safe_area_paddings">…</bool> ã¯å‰Šé™¤ã•れã¾ã—ãŸã€‚res/values/bools.xml ã‹ã‚‰ã“ã®ãƒªã‚½ãƒ¼ã‚¹ã‚’削除ã—ã€ãƒ•ロービューを作æˆã™ã‚‹éš›ã« enableSafeArea パラメータを使ã£ã¦ã‚»ãƒ¼ãƒ•エリアã®ãƒ‘ディングをランタイムã§åˆ¶å¾¡ã—ã¦ãã ã•ã„。デフォルト値ã¯ã€ãƒ¢ãƒ¼ãƒ€ãƒ«è¡¨ç¤ºã®å ´åˆã¯ trueã€åŸ‹ã‚è¾¼ã¿ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆã®å ´åˆã¯ false ã§ã™ã€‚

モックモード

モックモード(Expo Go ã¾ãŸã¯ã‚¦ã‚§ãƒ–プレビュー)㧠SDK を実行ã™ã‚‹å ´åˆã¯ã€ãƒ¢ãƒƒã‚¯ã‚³ãƒ³ãƒ•ィグã®ã‚­ãƒ¼ paywalls ã‚’ flows ã«å¤‰æ›´ã—ã¦ãã ã•ã„。

デフォルト動作ã®å¤‰æ›´ç‚¹

ã“れらã®å¤‰æ›´ã¯ã‚³ãƒ³ãƒ‘イルエラーを引ãèµ·ã“ã—ã¾ã›ã‚“ãŒã€å®Ÿè¡Œæ™‚ã«ãƒ†ã‚¹ãƒˆã—ã¦ãã ã•ã„:

  • onAndroidSystemBack: デフォルトã®å‹•作ãŒã€ãƒ“ューを閉ã˜ã‚‹å‹•作ã‹ã‚‰ãƒ“ューを開ã„ãŸã¾ã¾ç¶­æŒã™ã‚‹å‹•作ã«å¤‰æ›´ã•れã¾ã—ãŸã€‚以å‰ã®å‹•作を復元ã™ã‚‹ã«ã¯ã€ãƒãƒ³ãƒ‰ãƒ©ãƒ¼ã‹ã‚‰ true ã‚’è¿”ã—ã¦ãã ã•ã„。
  • onPurchaseCompleted: デフォルトã®å‹•作ãŒã€ãƒ“ューを閉ã˜ã‚‹å‹•作(ユーザーãŒè³¼å…¥ã‚’キャンセルã—ãŸå ´åˆã‚’除ã)ã‹ã‚‰ã€å¸¸ã«ãƒ“ューを開ã„ãŸã¾ã¾ç¶­æŒã™ã‚‹å‹•作ã«å¤‰æ›´ã•れã¾ã—ãŸã€‚以å‰ã®å‹•作を復元ã™ã‚‹ã«ã¯ã€ãƒãƒ³ãƒ‰ãƒ©ãƒ¼ã‹ã‚‰ purchaseResult.type !== 'user_cancelled' ã‚’è¿”ã—ã¦ãã ã•ã„。
  • onRestoreCompleted: デフォルトã®å‹•作ãŒã€å¾©å…ƒæˆåŠŸå¾Œã«ãƒ“ューを閉ã˜ã‚‹å‹•作ã‹ã‚‰ãƒ“ューを開ã„ãŸã¾ã¾ç¶­æŒã™ã‚‹å‹•作ã«å¤‰æ›´ã•れã¾ã—ãŸã€‚以å‰ã®å‹•作を復元ã™ã‚‹ã«ã¯ã€ãƒãƒ³ãƒ‰ãƒ©ãƒ¼ã‹ã‚‰ true ã‚’è¿”ã—ã¦ãã ã•ã„。
  • onUrlPress: デフォルトã®å‹•作ãŒå¤‰æ›´ã•れã€ãƒ€ãƒƒã‚·ãƒ¥ãƒœãƒ¼ãƒ‰ã®ã‚¢ãƒ—リ内ブラウザã¾ãŸã¯å¤–部ブラウザã®è¨­å®šã«å¾“ã„ã€ãƒã‚¤ãƒ†ã‚£ãƒ–レイヤーを通ã˜ã¦URLã‚’é–‹ãよã†ã«ãªã‚Šã¾ã—ãŸã€‚URLを独自ã«é–‹ãã«ã¯ã€ãƒãƒ³ãƒ‰ãƒ©ãƒ¼ã‚’オーãƒãƒ¼ãƒ©ã‚¤ãƒ‰ã—ã¦ãã ã•ã„。

オンボーディング API ã®éžæŽ¨å¥¨åŒ–

レガシーオンボーディング API ã¯ã€Flow Builder ã¸ã®ç§»è¡Œã«ä¼´ã„ v4.0 ã§éžæŽ¨å¥¨ã¨ãªã‚Šã¾ã—ãŸã€‚引ãç¶šã動作ã¯ã—ã¾ã™ãŒã€IDE 㯠@deprecated アノテーションを通ã˜ã¦éžæŽ¨å¥¨ã®ã‚·ãƒ³ãƒœãƒ«ã‚’警告ã—ã¾ã™ï¼ˆå®Ÿè¡Œæ™‚ã®è­¦å‘Šã¯ã‚りã¾ã›ã‚“)。ã“れらã®ã‚·ãƒ³ãƒœãƒ«ã¯å°†æ¥ã®ãƒªãƒªãƒ¼ã‚¹ã§å‰Šé™¤ã•れる予定ã§ã™ã®ã§ã€ã‚ªãƒ³ãƒœãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ã® Flow Builder ã¸ã®ç§»è¡Œã‚’計画ã—ã¦ãã ã•ã„。

éžæŽ¨å¥¨ã®ã‚·ãƒ³ãƒœãƒ«: getOnboardingã€getOnboardingForDefaultAudienceã€createOnboardingViewã€AdaptyOnboardingView。

ÿÿÿÿ