フローアクションへの応答 - iOS
Adapty のフロービルダーまたはペイウォールビルダーを使用してフローやペイウォールを構築する場合、ボタンを適切に設定することが重要です。
- ペイウォールビルダーでボタンを追加し、既存のアクションを割り当てるか、カスタムアクション ID を作成します。
- 割り当てた各アクションを処理するコードをアプリに記述します。
このガイドでは、カスタムアクションおよび既存アクションをコードで処理する方法を説明します。
フロー/ペイウォールのクローズと URL オープンのみ自動処理されます。 その他のボタンアクションはすべて、アプリコード側で適切な処理を実装する必要があります。
iOS SDKは、AdaptySystemRequestsHandlerを通じて、プッシュ通知やカメラアクセスなどのシステム権限リクエストに応答できます。フローはまだこれらのリクエストをトリガーしないため、現時点では対応不要です。
フローとペイウォールを閉じる
フローまたはペイウォールを閉じるボタンを追加するには:
- ビルダーでボタンを追加し、Close アクションを割り当てます。
- アプリのコードで
closeアクションのハンドラーを実装します。
iOS SDK では、close アクションはデフォルトでフローまたはペイウォールを閉じる動作をトリガーします。ただし、必要に応じてコード内でこの動作をオーバーライドできます。たとえば、あるフローを閉じると別のフローが開くようにすることもできます。
.flow(
isPresented: $flowPresented,
flowConfiguration: flowConfiguration,
didPerformAction: { action in
switch action {
case .close:
flowPresented = false // dismiss the flow or paywall
default:
break
}
},
didFailPurchase: { product, error in /* handle the error */ },
didFinishRestore: { profile in /* check access level and dismiss */ },
didFailRestore: { error in /* handle the error */ },
didFailRendering: { error in flowPresented = false }
)フローとペイウォールからURLを開く
リンクのグループ(利用規約や購入の復元など)を追加したい場合は、ビルダーで Link 要素を追加し、Open URL アクションを持つボタンと同じ方法で処理してください。
フローまたはペイウォールにリンクを開くボタン(例:Terms of use や Privacy policy)を追加するには:
- ビルダーでボタンを追加し、Open URL アクションを割り当て、開きたいURLを入力します。
- アプリのコードに、受け取ったURLをブラウザで開く
openURLアクションのハンドラーを実装します。
iOS SDK では、openURL アクションはデフォルトでURLを開く動作をします。ただし、必要に応じてコード内でこの動作を上書きすることができます。
.flow(
isPresented: $flowPresented,
flowConfiguration: flowConfiguration,
didPerformAction: { action in
switch action {
case let .openURL(url):
UIApplication.shared.open(url, options: [:]) // default behavior
default:
break
}
},
didFailPurchase: { product, error in /* handle the error */ },
didFinishRestore: { profile in /* check access level and dismiss */ },
didFailRestore: { error in /* handle the error */ },
didFailRendering: { error in flowPresented = false }
)カスタムアクションを処理する
その他のアクションを処理するボタンを追加するには:
- ビルダーでボタンを追加し、Custom アクションを割り当て、ID を設定します。
- アプリのコードに、作成したアクション ID に対応するハンドラーを実装します。
たとえば、別のサブスクリプションオファーや買い切り購入がある場合、別のフローやペイウォールを表示するボタンを追加できます。
.flow(
isPresented: $flowPresented,
flowConfiguration: flowConfiguration,
didPerformAction: { action in
switch action {
case let .custom(id):
if id == "openNewPaywall" {
// Display another flow or paywall
}
default:
break
}
},
didFailPurchase: { product, error in /* handle the error */ },
didFinishRestore: { profile in /* check access level and dismiss */ },
didFailRestore: { error in /* handle the error */ },
didFailRendering: { error in flowPresented = false }
)Adapty ペイウォールビルダーを使ってペイウォールを構築する場合、ボタンを適切に設定することが重要です:
- ペイウォールビルダーにボタンを追加し、既存のアクションを割り当てるか、カスタムアクション ID を作成します。
- 割り当てた各アクションを処理するコードをアプリに記述します。
このガイドでは、コード内でカスタムアクションおよび既存アクションを処理する方法を説明します。
購入、復元、ペイウォールのクローズ、URL のオープンのみ自動的に処理されます。 その他のボタンアクションは、アプリのコードで適切に対応を実装する必要があります。
ペイウォールを閉じる
ペイウォールを閉じるボタンを追加するには:
- ペイウォールビルダーでボタンを追加し、Close アクションを割り当てます。
- アプリのコードで、ペイウォールを閉じる
closeアクションのハンドラーを実装します。
iOS SDK では、close アクションはデフォルトでペイウォールを閉じる動作をトリガーします。ただし、必要に応じてコードでこの動作をオーバーライドできます。たとえば、あるペイウォールを閉じることで別のペイウォールを開くようにすることも可能です。
func paywallController(_ controller: AdaptyPaywallController,
didPerform action: AdaptyUI.Action) {
switch action {
case .close:
controller.dismiss(animated: true) // default behavior
break
}
}ペイウォールからURLを開く
リンクのグループ(利用規約や購入の復元など)を追加したい場合は、ペイウォールビルダーで Link 要素を追加し、Open URL アクションを持つボタンと同じ方法で処理してください。
ペイウォールにリンクを開くボタン(Terms of use や Privacy policy など)を追加するには:
- ペイウォールビルダーでボタンを追加し、Open URL アクションを割り当てて、開きたいURLを入力します。
- アプリのコードで、受け取ったURLをブラウザで開く
openUrlアクションのハンドラーを実装します。
iOS SDKでは、openUrlアクションはデフォルトでURLを開く動作をします。ただし、必要に応じてコード内でこの動作をオーバーライドできます。
func paywallController(_ controller: AdaptyPaywallController,
didPerform action: AdaptyUI.Action) {
switch action {
case let .openURL(url):
UIApplication.shared.open(url, options: [:]) // default behavior
break
}
}アプリへのログイン
ユーザーをアプリにログインさせるボタンを追加するには:
- ペイウォールビルダーでボタンを追加し、Login アクションを割り当てます。
- アプリのコードで、ユーザーを識別する
loginアクションのハンドラーを実装します。
func paywallController(_ controller: AdaptyPaywallController,
didPerform action: AdaptyUI.Action) {
switch action {
case .login:
// Show a login screen
let loginVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "LoginViewController")
controller.present(loginVC, animated: true)
}
}カスタムアクションの処理
その他のアクションを処理するボタンを追加するには:
- ペイウォールビルダーでボタンを追加し、Custom アクションを割り当てて、IDを設定します。
- アプリのコードで、作成したアクションIDのハンドラーを実装します。
たとえば、別のサブスクリプションオファーや買い切り購入がある場合、別のペイウォールを表示するボタンを追加できます:
func paywallController(_ controller: AdaptyPaywallController,
didPerform action: AdaptyUI.Action) {
switch action {
case let .custom(id):
if id == "openNewPaywall" {
// Display another paywall
}
}
break
}
}