Kotlin Multiplatform SDKでオンボーディングを表示する

オンボーディングはSDK v4で非推奨となり、将来のリリースで削除される予定です。 バグ修正や改善は行われません。代わりにフローを使用してください。オンボーディングはWebView内で動作しますが、フローはデバイス上でネイティブにレンダリングされるため、アニメーションがよりスムーズで、ネイティブな外観と操作感が一貫しており、読み込み時間が短く、WebViewランタイムへの依存もありません。まずはフローとペイウォールの取得フローとペイウォールの表示をご覧ください。

ビルダーを使ってオンボーディングをカスタマイズした場合、Kotlin Multiplatform アプリのコードでレンダリングを気にする必要はありません。このようなオンボーディングには、表示する内容と表示方法の両方が含まれています。

始める前に、以下を確認してください:

  1. Adapty Kotlin Multiplatform SDK 3.16.1 以降をインストール済みであること。
  2. オンボーディングを作成済みであること。
  3. オンボーディングをプレースメントに追加済みであること。

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()