Kotlin Multiplatform SDKでオンボーディングを表示する
オンボーディングはSDK v4で非推奨となり、将来のリリースで削除される予定です。 バグ修正や改善は行われません。代わりにフローを使用してください。オンボーディングはWebView内で動作しますが、フローはデバイス上でネイティブにレンダリングされるため、アニメーションがよりスムーズで、ネイティブな外観と操作感が一貫しており、読み込み時間が短く、WebViewランタイムへの依存もありません。まずはフローとペイウォールの取得とフローとペイウォールの表示をご覧ください。
ビルダーを使ってオンボーディングをカスタマイズした場合、Kotlin Multiplatform アプリのコードでレンダリングを気にする必要はありません。このようなオンボーディングには、表示する内容と表示方法の両方が含まれています。
始める前に、以下を確認してください:
- Adapty Kotlin Multiplatform SDK 3.16.1 以降をインストール済みであること。
- オンボーディングを作成済みであること。
- オンボーディングをプレースメントに追加済みであること。
Adapty Kotlin Multiplatform SDKには、オンボーディングを表示する方法が2つあります:
- Compose Multiplatformを使用する場合
- Compose Multiplatformを使用しない場合
Compose Multiplatformを使用する場合
オンボーディングを表示するには、createOnboardingViewメソッドで作成したviewに対してview.present()メソッドを呼び出します。各viewは一度しか使用できません。再度オンボーディングを表示する必要がある場合は、createOnboardingViewをもう一度呼び出して新しいviewインスタンスを作成してください。
同じviewを再作成せずに再利用すると、エラーが発生する場合があります。
viewModelScope.launch {
AdaptyUI.createOnboardingView(onboarding = onboarding).onSuccess { view ->
view.present()
}.onError { error ->
// handle the error
}
}
iOS のプレゼンテーションスタイルを設定する
present() メソッドに iosPresentationStyle パラメータを渡すことで、iOS でのオンボーディングの表示スタイルを設定できます。このパラメータには AdaptyUIIOSPresentationStyle.FULLSCREEN(デフォルト)または AdaptyUIIOSPresentationStyle.PAGESHEET を指定できます。
viewModelScope.launch {
val view = AdaptyUI.createOnboardingView(onboarding = onboarding).getOrNull()
view?.present(iosPresentationStyle = AdaptyUIIOSPresentationStyle.PAGESHEET)
}
オンボーディング内のリンクの開き方をカスタマイズする
デフォルトでは、オンボーディング内のリンクはアプリ内ブラウザで開きます。これにより、アプリを切り替えることなくウェブページを表示できるシームレスなユーザー体験が提供されます。
外部ブラウザでリンクを開きたい場合は、externalUrlsPresentation パラメータを AdaptyWebPresentation.EXTERNAL_BROWSER に設定することでこの動作をカスタマイズできます:
viewModelScope.launch {
AdaptyUI.createOnboardingView(
onboarding = onboarding,
externalUrlsPresentation = AdaptyWebPresentation.EXTERNAL_BROWSER // default – IN_APP_BROWSER
).onSuccess { view ->
view.present()
}.onError { error ->
// handle the error
}
}
Compose Multiplatformを使わない場合
createNativeOnboardingView はコア モジュール io.adapty:adapty-kmp の一部です。Compose Multiplatform を使用していないプロジェクトでは、io.adapty:adapty-kmp-ui 依存関係は不要です。
Compose Multiplatform を使わずにオンボーディングを埋め込むには、createNativeOnboardingView を呼び出します。レイアウトに追加できる AdaptyNativeOnboardingView が返されます:
ビューを破棄する
レイアウトからビューを削除する際はdispose()を呼び出してください。これによりイベントリスナーの登録が解除され、内部リソースが解放されます。
nativeView.dispose()