Trình bày onboarding trong Kotlin Multiplatform SDK
Nếu bạn đã tùy chỉnh onboarding bằng builder, bạn không cần lo về việc render nó trong code ứng dụng Kotlin Multiplatform để hiển thị cho người dùng. Onboarding đó đã bao gồm cả nội dung hiển thị lẫn cách hiển thị.
Trước khi bắt đầu, hãy đảm bảo rằng:
- Bạn đã cài đặt Adapty Kotlin Multiplatform SDK phiên bản 3.16.1 trở lên.
- Bạn đã tạo onboarding.
- Bạn đã thêm onboarding vào một placement.
Adapty Kotlin Multiplatform SDK cung cấp hai cách để trình bày onboarding:
- Với Compose Multiplatform
- Không dùng Compose Multiplatform
Với Compose Multiplatform
Để hiển thị onboarding, sử dụng phương thức view.present() trên view được tạo bởi phương thức createOnboardingView. Mỗi view chỉ được dùng một lần. Nếu bạn cần hiển thị lại onboarding, hãy gọi createOnboardingView thêm một lần nữa để tạo instance view mới.
Tái sử dụng cùng một view mà không tạo lại có thể dẫn đến lỗi.
viewModelScope.launch {
AdaptyUI.createOnboardingView(onboarding = onboarding).onSuccess { view ->
view.present()
}.onError { error ->
// handle the error
}
}
Cấu hình kiểu trình bày trên iOS
Cấu hình cách onboarding được trình bày trên iOS bằng cách truyền tham số iosPresentationStyle vào phương thức present(). Tham số này chấp nhận giá trị AdaptyUIIOSPresentationStyle.FULLSCREEN (mặc định) hoặc AdaptyUIIOSPresentationStyle.PAGESHEET.
viewModelScope.launch {
val view = AdaptyUI.createOnboardingView(onboarding = onboarding).getOrNull()
view?.present(iosPresentationStyle = AdaptyUIIOSPresentationStyle.PAGESHEET)
}
Tùy chỉnh cách mở liên kết trong onboarding
Theo mặc định, các liên kết trong onboarding sẽ mở trong trình duyệt trong ứng dụng. Điều này mang lại trải nghiệm liền mạch cho người dùng bằng cách hiển thị trang web ngay trong ứng dụng, không cần chuyển sang ứng dụng khác.
Nếu bạn muốn mở liên kết bằng trình duyệt ngoài, có thể tùy chỉnh hành vi này bằng cách đặt tham số externalUrlsPresentation thành 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
}
}
Không dùng Compose Multiplatform
createNativeOnboardingView là một phần của module core io.adapty:adapty-kmp. Nếu dự án của bạn không sử dụng Compose Multiplatform, bạn không cần dependency io.adapty:adapty-kmp-ui.
Để nhúng onboarding mà không dùng Compose Multiplatform, gọi createNativeOnboardingView. Phương thức này trả về một AdaptyNativeOnboardingView mà bạn thêm vào layout của mình:
Hủy view
Gọi dispose() khi xóa view khỏi layout. Thao tác này sẽ hủy đăng ký event listener và giải phóng các tài nguyên nội bộ.
nativeView.dispose()