ÿÿ フローã¨ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã®è¡¨ç¤º - iOS | Adapty ドキュメント

フローã¨ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã®è¡¨ç¤º - iOS

フローã¨ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã®è¡¨ç¤º
✦
フロー Flow Builder ã§ä½œæˆâ€”—デãƒã‚¤ã‚¹ä¸Šã§ãƒã‚¤ãƒ†ã‚£ãƒ–ã«ãƒ¬ãƒ³ãƒ€ãƒªãƒ³ã‚°ã•れã€WebView ã¯ä¸è¦
✦
Paywall Builder ã®ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ« 既存ã®ã™ã¹ã¦ã® Paywall Builder コンテンツ

フローã¾ãŸã¯ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’作æˆã—ãŸå ´åˆã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«è¡¨ç¤ºã™ã‚‹ãŸã‚ã«ãƒ¢ãƒã‚¤ãƒ«ã‚¢ãƒ—リã®ã‚³ãƒ¼ãƒ‰ã§ãƒ¬ãƒ³ãƒ€ãƒªãƒ³ã‚°ã‚’æ°—ã«ã™ã‚‹å¿…è¦ã¯ã‚りã¾ã›ã‚“。フローやペイウォールã«ã¯ã€è¡¨ç¤ºã™ã‚‹å†…容ã¨ãã®è¡¨ç¤ºæ–¹æ³•ã®ä¸¡æ–¹ãŒå«ã¾ã‚Œã¦ã„ã¾ã™ã€‚

以下ã§ä½¿ç”¨ã™ã‚‹ AdaptyUI.FlowConfiguration オブジェクトã®å–得方法ã«ã¤ã„ã¦ã¯ã€ãƒ•ローã¨ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã®å–å¾—ã‚’å‚ç…§ã—ã¦ãã ã•ã„。

SwiftUI ã§ãƒ•ローã¨ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’表示ã™ã‚‹

モーダルビューã¨ã—ã¦è¡¨ç¤ºã™ã‚‹

フローã¾ãŸã¯ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’デãƒã‚¤ã‚¹ç”»é¢ã«ãƒ¢ãƒ¼ãƒ€ãƒ«ãƒ“ューã¨ã—ã¦è¡¨ç¤ºã™ã‚‹ã«ã¯ã€SwiftUI ã® .flow モディファイアを使用ã—ã¾ã™ã€‚最å°é™ã®å‘¼ã³å‡ºã—ã«ã¯ã€isPresentedã€flowConfigurationã€ãŠã‚ˆã³5ã¤ã®å¿…須コールãƒãƒƒã‚¯ãŒå¿…è¦ã§ã™ã€‚

.flow(
    isPresented: $flowPresented,
    flowConfiguration: <AdaptyUI.FlowConfiguration>,
    didFinishPurchase: { _, _ in /* dismiss, or do nothing to let the flow continue */ },
    didFailPurchase: { _, _ in /* handle the error */ },
    didFinishRestore: { _ in /* check access level and dismiss */ },
    didFailRestore: { _ in /* handle the error */ },
    didReceiveError: { _ in flowPresented = false }
)

より細ã‹ã„制御ãŒå¿…è¦ãªå ´åˆã¯ã€didPerformAction ãªã©ã®ã‚ªãƒ—ションコールãƒãƒƒã‚¯ã‚’追加ã—ã¦ãƒœã‚¿ãƒ³ã®ã‚¿ãƒƒãƒ—を処ç†ã§ãã¾ã™:

@State var flowPresented = false // ensure that you manage this variable state and set it to `true` at the moment you want to show the flow or paywall

var body: some View {
  Text("Hello, AdaptyUI!")
      .flow(
          isPresented: $flowPresented,
          flowConfiguration: <AdaptyUI.FlowConfiguration>,
          didPerformAction: { action in
              switch action {
                  case .close:
                      flowPresented = false
                  default:
                      // Handle other actions
                      break
              }
          },
          didFinishPurchase: { product, purchaseResult in /* dismiss, or do nothing to let the flow continue */ },
          didFailPurchase: { product, error in /* handle the error */ },
          didFinishRestore: { profile in /* check access level and dismiss */ },
          didFailRestore: { error in /* handle the error */ },
          didReceiveError: { error in flowPresented = false }
      )
}

パラメーター:

パラメーター必須説明
isPresented必須フローã¾ãŸã¯ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ç”»é¢ã®è¡¨ç¤ºã‚’管ç†ã™ã‚‹ãƒã‚¤ãƒ³ãƒ‡ã‚£ãƒ³ã‚°ã€‚
flowConfiguration必須フローã¾ãŸã¯ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã®è¦–覚的ãªè©³ç´°ã‚’å«ã‚€ AdaptyUI.FlowConfiguration オブジェクト。AdaptyUI.getFlowConfiguration(forFlow:) メソッドを使用ã—ã¾ã™ã€‚詳ã—ãã¯ãƒ•ローã¨ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã®å–å¾—ã‚’å‚ç…§ã—ã¦ãã ã•ã„。
didFinishPurchaseå¿…é ˆAdapty.makePurchase() ãŒæ­£å¸¸ã«å®Œäº†ã—ãŸã¨ãã«å‘¼ã³å‡ºã•れã¾ã™ã€‚フローã¯è‡ªå‹•çš„ã«é–‰ã˜ã¾ã›ã‚“。ã“ã“ã§ãƒ—レゼンテーションãƒã‚¤ãƒ³ãƒ‡ã‚£ãƒ³ã‚°ã‚’ false ã«è¨­å®šã™ã‚‹ã‹ã€ä½•ã‚‚ã—ã¦ãƒ•ローを購入後も継続ã•ã›ã¦ãã ã•ã„。
didFailPurchaseå¿…é ˆAdapty.makePurchase() ãŒå¤±æ•—ã—ãŸã¨ãã«å‘¼ã³å‡ºã•れã¾ã™ã€‚
didFinishRestoreå¿…é ˆAdapty.restorePurchases() ãŒæ­£å¸¸ã«å®Œäº†ã—ãŸã¨ãã«å‘¼ã³å‡ºã•れã¾ã™ã€‚
didFailRestoreå¿…é ˆAdapty.restorePurchases() ãŒå¤±æ•—ã—ãŸã¨ãã«å‘¼ã³å‡ºã•れã¾ã™ã€‚
didReceiveError必須レンダリングエラーã¾ãŸã¯ãƒ•ロースクリプトã®ãƒ©ãƒ³ã‚¿ã‚¤ãƒ ã‚¨ãƒ©ãƒ¼ï¼ˆä¾‹ï¼šJavaScript 例外ã€AdaptyUIError コード 4105)ãŒç™ºç”Ÿã—ãŸã¨ãã«å‘¼ã³å‡ºã•れã¾ã™ã€‚レンダリングエラーã®å ´åˆã¯ Adapty サãƒãƒ¼ãƒˆã«ãŠå•ã„åˆã‚ã›ãã ã•ã„。
fullScreenオプションフローã¾ãŸã¯ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’フルスクリーンモードã§è¡¨ç¤ºã™ã‚‹ã‹ã€ã‚·ãƒ¼ãƒˆã¨ã—ã¦è¡¨ç¤ºã™ã‚‹ã‹ã‚’決定ã—ã¾ã™ã€‚デフォルト㯠true ã§ã™ã€‚
didAppearオプションフローã¾ãŸã¯ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ãƒ“ューãŒè¡¨ç¤ºã•れãŸã¨ãã«å‘¼ã³å‡ºã•れã¾ã™ã€‚
didDisappearオプションフローã¾ãŸã¯ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ãƒ“ューãŒé–‰ã˜ã‚‰ã‚ŒãŸã¨ãã«å‘¼ã³å‡ºã•れã¾ã™ã€‚
didPerformActionオプションユーザーãŒãƒœã‚¿ãƒ³ã‚’クリックã—ãŸã¨ãã«å‘¼ã³å‡ºã•れã¾ã™ã€‚close 㨠openURL ã®2ã¤ã®ã‚¢ã‚¯ã‚·ãƒ§ãƒ³ ID ãŒäº‹å‰å®šç¾©ã•れã¦ãŠã‚Šã€ãれ以外ã¯ã‚«ã‚¹ã‚¿ãƒ ã§ãƒ“ルダー内ã§è¨­å®šã§ãã¾ã™ã€‚
didSelectProductオプションユーザーã¾ãŸã¯ã‚·ã‚¹ãƒ†ãƒ ã«ã‚ˆã£ã¦è³¼å…¥ã™ã‚‹ãƒ—ロダクトãŒé¸æŠžã•れãŸã¨ãã«å‘¼ã³å‡ºã•れã¾ã™ã€‚
didStartPurchaseオプションユーザーãŒè³¼å…¥ãƒ—ロセスを開始ã—ãŸã¨ãã«å‘¼ã³å‡ºã•れã¾ã™ã€‚
didFinishWebPaymentNavigationオプションWeb 支払ã„ã®ãƒŠãƒ“ゲーションãŒå®Œäº†ã—ãŸã¨ãã«å‘¼ã³å‡ºã•れã¾ã™ã€‚
didStartRestoreオプションユーザーãŒå¾©å…ƒãƒ—ロセスを開始ã—ãŸã¨ãã«å‘¼ã³å‡ºã•れã¾ã™ã€‚
didFailLoadingProductsオプションプロダクトã®èª­ã¿è¾¼ã¿ä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãŸã¨ãã«å‘¼ã³å‡ºã•れã¾ã™ã€‚true ã‚’è¿”ã™ã¨å†èª­ã¿è¾¼ã¿ã‚’試ã¿ã¾ã™ã€‚
didPartiallyLoadProductsオプションプロダクトãŒéƒ¨åˆ†çš„ã«èª­ã¿è¾¼ã¾ã‚ŒãŸã¨ãã«å‘¼ã³å‡ºã•れã¾ã™ã€‚
showAlertItemオプションフローã¾ãŸã¯ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã®ä¸Šã«ã‚¢ãƒ©ãƒ¼ãƒˆã‚¢ã‚¤ãƒ†ãƒ ã®è¡¨ç¤ºã‚’管ç†ã™ã‚‹ãƒã‚¤ãƒ³ãƒ‡ã‚£ãƒ³ã‚°ã€‚
showAlertBuilderオプションアラートビューをレンダリングã™ã‚‹ãŸã‚ã®é–¢æ•°ã€‚
placeholderBuilderオプションフローã¾ãŸã¯ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã®èª­ã¿è¾¼ã¿ä¸­ã«ãƒ—レースホルダービューをレンダリングã™ã‚‹ãŸã‚ã®é–¢æ•°ã€‚デフォルト㯠ProgressView ã§ã™ã€‚
iOS ã§ã®ãƒ‘ラメーターã®è©³ç´°ã«ã¤ã„ã¦ã¯ã€iOS - イベントã®å‡¦ç†ã‚’ã”å‚ç…§ãã ã•ã„。

éžãƒ¢ãƒ¼ãƒ€ãƒ«ãƒ“ューã¨ã—ã¦è¡¨ç¤ºã™ã‚‹

フローやペイウォールをã€ã‚¢ãƒ—リã®ãƒŠãƒ“ゲーションフロー内ã®ãƒŠãƒ“ゲーション先ã¾ãŸã¯ã‚¤ãƒ³ãƒ©ã‚¤ãƒ³ãƒ“ューã¨ã—ã¦è¡¨ç¤ºã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚SwiftUI ã®ãƒ“ュãƒÿÿ¼å†…ã§ AdaptyFlowView を直接使用ã—ã¦ãã ã•ã„:

AdaptyFlowView(
    flowConfiguration: <AdaptyUI.FlowConfiguration>,
    didFinishPurchase: { product, purchaseResult in
        // Dismiss the view, or do nothing to let the flow continue
    },
    didFailPurchase: { product, error in
        // Handle purchase failure
    },
    didFinishRestore: { profile in
        // Handle successful restore
    },
    didFailRestore: { error in
        // Handle restore failure
    },
    didReceiveError: { error in
        // Handle the error (rendering or JS exception from the flow script).
    }
)

UIKitã§ãƒ•ローã¨ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’表示ã™ã‚‹

デãƒã‚¤ã‚¹ã®ç”»é¢ã«ãƒ•ローã¾ãŸã¯ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’表示ã™ã‚‹ã«ã¯ã€æ¬¡ã®æ‰‹é †ã‚’行ã„ã¾ã™ã€‚

  1. AdaptyUI.flowController(with:delegate:) メソッドを使用ã—ã¦ã€è¡¨ç¤ºã—ãŸã„ãƒ“ã‚¸ãƒ¥ã‚¢ãƒ«ãƒ•ãƒ­ãƒ¼ã‚’åˆæœŸåŒ–ã—ã¾ã™ã€‚

    import AdaptyUI
    
    let visualFlow = try AdaptyUI.flowController(
        with: <AdaptyUI.FlowConfiguration>,
        delegate: <AdaptyFlowControllerDelegate>
    )

    リクエストパラメーター:

    パラメータ必須/ä»»æ„説明
    flowConfiguration必須フローã¾ãŸã¯ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã®ãƒ“ジュアル詳細をå«ã‚€ AdaptyUI.FlowConfiguration オブジェクト。AdaptyUI.getFlowConfiguration(forFlow:) メソッドを使用ã—ã¾ã™ã€‚詳細㯠フローã¨ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã®å–å¾— ã‚’å‚ç…§ã—ã¦ãã ã•ã„。
    delegate必須フローãŠã‚ˆã³ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã®ã‚¤ãƒ™ãƒ³ãƒˆã‚’å—ã‘å–ã‚‹ AdaptyFlowControllerDelegate。詳細㯠フロー&ペイウォールイベントã®å‡¦ç† ã‚’å‚ç…§ã—ã¦ãã ã•ã„。

    戻り値:

    オブジェクト説明
    AdaptyFlowControllerリクエストã•れãŸãƒ•ローã¾ãŸã¯ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ç”»é¢ã‚’表ã™ã‚ªãƒ–ジェクト。
  2. ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆãŒæ­£å¸¸ã«ä½œæˆã•れãŸã‚‰ã€ãƒ‡ãƒã‚¤ã‚¹ã®ç”»é¢ã«è¡¨ç¤ºã§ãã¾ã™ã€‚

    present(visualFlow, animated: true)

リアルワールドã®ä¾‹ã§Adapty SDKをモãƒã‚¤ãƒ«ã‚¢ãƒ—リã«çµ±åˆã™ã‚‹æ–¹æ³•を確èªã—ãŸã„å ´åˆã¯ã€ã‚µãƒ³ãƒ—ルアプリをã”覧ãã ã•ã„。ペイウォールã®è¡¨ç¤ºã€è³¼å…¥ã€ãã®ä»–ã®åŸºæœ¬æ©Ÿèƒ½ãªã©ã€å®Œå…¨ãªã‚»ãƒƒãƒˆã‚¢ãƒƒãƒ—を実演ã—ã¦ã„ã¾ã™ã€‚

ペイウォールビルダーã§ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’カスタマイズã—ãŸå ´åˆã€ãƒ¢ãƒã‚¤ãƒ«ã‚¢ãƒ—リã®ã‚³ãƒ¼ãƒ‰ã§ãƒ¬ãƒ³ãƒ€ãƒªãƒ³ã‚°ã—ã¦ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«è¡¨ç¤ºã™ã‚‹ã“ã¨ã‚’心é…ã™ã‚‹å¿…è¦ã¯ã‚りã¾ã›ã‚“。ã“ã®ã‚ˆã†ãªãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã«ã¯ã€ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«å†…ã«ä½•を表示ã™ã‚‹ã‹ã€ã¾ãŸã©ã®ã‚ˆã†ã«è¡¨ç¤ºã™ã‚‹ã‹ã®ä¸¡æ–¹ãŒå«ã¾ã‚Œã¦ã„ã¾ã™ã€‚ AdaptyUI.PaywallConfiguration オブジェクトã®å–得方法ã«ã¤ã„ã¦ã¯ã€ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ãƒ“ルダーã®ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã¨ãã®è¨­å®šã‚’å–å¾—ã™ã‚‹ã‚’å‚ç…§ã—ã¦ãã ã•ã„。

SwiftUI ã§ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’表示ã™ã‚‹

モーダルビューã¨ã—ã¦è¡¨ç¤ºã™ã‚‹

ビジュアルペイウォールをデãƒã‚¤ã‚¹ç”»é¢ã«ãƒ¢ãƒ¼ãƒ€ãƒ«ãƒ“ューã¨ã—ã¦è¡¨ç¤ºã™ã‚‹ã«ã¯ã€SwiftUI ã® .paywall モディファイアを使用ã—ã¾ã™ï¼š

@State var paywallPresented = false // ensure that you manage this variable state and set it to `true` at the moment you want to show the paywall

var body: some View {
  Text("Hello, AdaptyUI!")
      .paywall(
          isPresented: $paywallPresented,
          paywallConfiguration: <AdaptyUI.PaywallConfiguration>,
          didPerformAction: { action in
              switch action {
                  case .close:
                      paywallPresented = false
                  default:
                      // Handle other actions
                      break
              }
          },
          didFinishPurchase: { product, profile in paywallPresented = false },
          didFailPurchase: { product, error in /* handle the error */ },
          didFinishRestore: { profile in /* check access level and dismiss */  },
          didFailRestore: { error in /* handle the error */ },
          didFailRendering: { error in paywallPresented = false }
      )
}

Parameters:

パラメータ必須説明
isPresented必須ペイウォール画é¢ã‚’表示ã™ã‚‹ã‹ã©ã†ã‹ã‚’管ç†ã™ã‚‹ãƒã‚¤ãƒ³ãƒ‡ã‚£ãƒ³ã‚°ã€‚
paywallConfiguration必須ペイウォールã®è¦–覚的ãªè©³ç´°ã‚’å«ã‚€ AdaptyUI.PaywallConfiguration オブジェクト。AdaptyUI.paywallConfiguration(for:products:viewConfiguration:observerModeResolver:tagResolver:timerResolver:) メソッドを使用ã—ã¦ãã ã•ã„。詳細ã¯ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ãƒ“ルダーã®ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã¨è¨­å®šã®å–å¾—ã‚’å‚ç…§ã—ã¦ãã ã•ã„。
didFailPurchaseå¿…é ˆAdapty.makePurchase() ãŒå¤±æ•—ã—ãŸã¨ãã«å‘¼ã³å‡ºã•れã¾ã™ã€‚
didFinishRestoreå¿…é ˆAdapty.restorePurchases() ãŒæ­£å¸¸ã«å®Œäº†ã—ãŸã¨ãã«å‘¼ã³å‡ºã•れã¾ã™ã€‚
didFailRestoreå¿…é ˆAdapty.restorePurchases() ãŒå¤±æ•—ã—ãŸã¨ãã«å‘¼ã³å‡ºã•れã¾ã™ã€‚
didFailRendering必須インターフェースã®ãƒ¬ãƒ³ãƒ€ãƒªãƒ³ã‚°ä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãŸå ´åˆã«å‘¼ã³å‡ºã•れã¾ã™ã€‚ã“ã®å ´åˆã¯Adapty サãƒãƒ¼ãƒˆã«ãŠå•ã„åˆã‚ã›ãã ã•ã„。
fullScreenä»»æ„ペイウォールをフルスクリーンモードã§è¡¨ç¤ºã™ã‚‹ã‹ã€ãƒ¢ãƒ¼ãƒ€ãƒ«ã¨ã—ã¦è¡¨ç¤ºã™ã‚‹ã‹ã‚’決定ã—ã¾ã™ã€‚デフォルト㯠true ã§ã™ã€‚
didAppearä»»æ„ペイウォールビューãŒè¡¨ç¤ºã•れãŸã¨ãã«å‘¼ã³å‡ºã•れã¾ã™ã€‚
didDisappearä»»æ„ペイウォールビューãŒé–‰ã˜ã‚‰ã‚ŒãŸã¨ãã«å‘¼ã³å‡ºã•れã¾ã™ã€‚
didPerformActionä»»æ„ユーザーãŒãƒœã‚¿ãƒ³ã‚’クリックã—ãŸã¨ãã«å‘¼ã³å‡ºã•れã¾ã™ã€‚ボタンã«ã‚ˆã£ã¦ã‚¢ã‚¯ã‚·ãƒ§ãƒ³ ID ãŒç•°ãªã‚Šã¾ã™ã€‚close 㨠openURL ã® 2 ã¤ã®ã‚¢ã‚¯ã‚·ãƒ§ãƒ³ ID ãŒã‚らã‹ã˜ã‚定義ã•れã¦ãŠã‚Šã€ãれ以外ã¯ã‚«ã‚¹ã‚¿ãƒ ã§ãƒ“ルダーã§è¨­å®šã§ãã¾ã™ã€‚
didSelectProductä»»æ„プロダクトãŒï¼ˆãƒ¦ãƒ¼ã‚¶ãƒ¼ã¾ãŸã¯ã‚·ã‚¹ãƒ†ãƒ ã«ã‚ˆã£ã¦ï¼‰è³¼å…¥å¯¾è±¡ã¨ã—ã¦é¸æŠžã•れãŸå ´åˆã«å‘¼ã³å‡ºã•れã¾ã™ã€‚
didStartPurchaseä»»æ„ユーザーãŒè³¼å…¥ãƒ—ロセスを開始ã—ãŸã¨ãã«å‘¼ã³å‡ºã•れã¾ã™ã€‚
didFinishPurchaseä»»æ„Adapty.makePurchase() ãŒæ­£å¸¸ã«å®Œäº†ã—ãŸã¨ãã«å‘¼ã³å‡ºã•れã¾ã™ã€‚
didFinishWebPaymentNavigationä»»æ„Web 決済ã®ãƒŠãƒ“ゲーションãŒçµ‚了ã—ãŸã¨ãã«å‘¼ã³å‡ºã•れã¾ã™ã€‚
didStartRestoreä»»æ„ユーザーãŒå¾©å…ƒãƒ—ロセスを開始ã—ãŸã¨ãã«å‘¼ã³å‡ºã•れã¾ã™ã€‚
didFailLoadingProductsä»»æ„プロダクトã®èª­ã¿è¾¼ã¿ä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãŸã¨ãã«å‘¼ã³å‡ºã•れã¾ã™ã€‚true ã‚’è¿”ã™ã¨å†èª­ã¿è¾¼ã¿ã‚’試ã¿ã¾ã™ã€‚
didPartiallyLoadProductsä»»æ„プロダクトãŒéƒ¨åˆ†çš„ã«èª­ã¿è¾¼ã¾ã‚ŒãŸã¨ãã«å‘¼ã³å‡ºã•れã¾ã™ã€‚
showAlertItemä»»æ„ペイウォールã®ä¸Šã«ã‚¢ãƒ©ãƒ¼ãƒˆã‚¢ã‚¤ãƒ†ãƒ ã®è¡¨ç¤ºã‚’管ç†ã™ã‚‹ãƒã‚¤ãƒ³ãƒ‡ã‚£ãƒ³ã‚°ã€‚
showAlertBuilderä»»æ„アラートビューをレンダリングã™ã‚‹ãŸã‚ã®é–¢æ•°ã€‚
placeholderBuilderä»»æ„ペイウォールã®èª­ã¿è¾¼ã¿ä¸­ã«ãƒ—レースホルダービューをレンダリングã™ã‚‹ãŸã‚ã®é–¢æ•°ã€‚
イベントã®ãƒ‘ラメータã«ã¤ã„ã¦ã¯ã€iOS - イベントã®å‡¦ç† ã‚’å‚ç…§ã—ã¦ãã ã•ã„。

ノンモーダルビューã¨ã—ã¦è¡¨ç¤ºã™ã‚‹

ペイウォールをナビゲーションã®é·ç§»å…ˆã‚„インラインビューã¨ã—ã¦ã€ã‚¢ãƒ—リã®ãƒŠãƒ“ゲーションフロー内ã«è¡¨ç¤ºã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚SwiftUI ã®ãƒ“ュー㧠AdaptyPaywallView を直接使用ã—ã¦ãã ã•ã„。

AdaptyPaywallView(
    paywallConfiguration: <AdaptyUI.PaywallConfiguration>,
    didFailPurchase: { product, error in
        // Handle purchase failure
    },
    didFinishRestore: { profile in
        // Handle successful restore
    },
    didFailRestore: { error in
        // Handle restore failure
    },
    didFailRendering: { error in
        // Handle rendering error
    }
)

UIKit ã§ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’表示ã™ã‚‹

デãƒã‚¤ã‚¹ç”»é¢ã«ãƒ“ジュアルペイウォールを表示ã™ã‚‹ã«ã¯ã€æ¬¡ã®æ‰‹é †ã‚’行ã„ã¾ã™ã€‚

  1. .paywallController(for:products:viewConfiguration:delegate:) メソッドを使用ã—ã¦ã€è¡¨ç¤ºã—ãŸã„ãƒ“ã‚¸ãƒ¥ã‚¢ãƒ«ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’åˆæœŸåŒ–ã—ã¾ã™ã€‚

    import AdaptyUI
    
    let visualPaywall = AdaptyUI.paywallController(
        with: <paywall configuration object>,
        delegate: <AdaptyPaywallControllerDelegate>
    )

    リクエストパラメーター:

    パラメータ必須/ä»»æ„説明
    paywall configuration必須ペイウォールã®ãƒ“ジュアル情報をå«ã‚€ AdaptyUI.PaywallConfiguration オブジェクトã§ã™ã€‚AdaptyUI.getPaywallConfiguration(forPaywall:locale:) メソッドを使用ã—ã¦ãã ã•ã„。詳細ã¯ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ãƒ“ルダーã®ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã¨è¨­å®šã®å–å¾—ã‚’å‚ç…§ã—ã¦ãã ã•ã„。
    delegate必須ペイウォールイベントをå—ã‘å–ã‚‹ãŸã‚ã® AdaptyPaywallControllerDelegate ã§ã™ã€‚詳細ã¯ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚¤ãƒ™ãƒ³ãƒˆã®å‡¦ç†ã‚’å‚ç…§ã—ã¦ãã ã•ã„。

戻り値:

オブジェクト説明
AdaptyPaywallControllerリクエストã•れãŸãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ç”»é¢ã‚’表ã™ã‚ªãƒ–ジェクト
  1. オブジェクトã®ä½œæˆã«æˆåŠŸã—ãŸã‚‰ã€ãƒ‡ãƒã‚¤ã‚¹ã®ç”»é¢ã«è¡¨ç¤ºã§ãã¾ã™ã€‚

    present(visualPaywall, animated: true)

実際ã®çµ±åˆä¾‹ã‚’確èªã—ãŸã„å ´åˆã¯ã€ã‚µãƒ³ãƒ—ルアプリをã”覧ãã ã•ã„。ペイウォールã®è¡¨ç¤ºã€è³¼å…¥å‡¦ç†ãªã©ã®åŸºæœ¬çš„ãªæ©Ÿèƒ½ã‚’å«ã‚€ã€å®Œå…¨ãªã‚»ãƒƒãƒˆã‚¢ãƒƒãƒ—ãŒç¢ºèªã§ãã¾ã™ã€‚

ÿÿÿÿ