Hiển thị flow ở chế độ Observer - Kotlin Multiplatform

Nếu bạn sử dụng chế độ Observer, bạn tự chịu trách nhiệm về logic mua hàng của mình. Nhưng bạn có thể ủy quyền giao diện paywall cho Flow & Paywall Builder.

Thiết kế màn hình trong builder, Adapty SDK sẽ render nó theo chuẩn native. Cập nhật nội dung, bố cục và giá cả bất cứ lúc nào mà không cần phát hành lại ứng dụng.

Hướng dẫn này trình bày cách hiển thị một flow và xử lý các callback mua hàng. Nếu Adapty thực hiện giao dịch mua hàng thay bạn, hãy xem Hiển thị flow & paywall.

Trước khi bắt đầu

Bạn cần:

Triển khai

Ở chế độ Observer, SDK không thực hiện mua hàng thay bạn. Khi người dùng nhấn nút mua hoặc khôi phục trong một flow do Adapty render, SDK sẽ gọi AdaptyUIObserverModeResolver của bạn — hãy thực hiện việc mua hoặc khôi phục bằng code của chính bạn tại đó.

  1. Implement interface AdaptyUIObserverModeResolver:

    import com.adapty.kmp.AdaptyUIObserverModeResolver
    import com.adapty.kmp.models.AdaptyPaywallProduct
    import com.adapty.kmp.models.AdaptyUIFlowView
    
    class MyObserverModeResolver : AdaptyUIObserverModeResolver {
        override fun observerModeDidInitiatePurchase(
            view: AdaptyUIFlowView,
            product: AdaptyPaywallProduct,
            onStartPurchase: () -> Unit,
            onFinishPurchase: () -> Unit
        ) {
            onStartPurchase() // the view shows its loading indicator
            // make the purchase with your own code,
            // then report the transaction to Adapty and call:
            onFinishPurchase() // the view hides the loading indicator
        }
    
        override fun observerModeDidInitiateRestore(
            view: AdaptyUIFlowView,
            onStartRestore: () -> Unit,
            onFinishRestore: () -> Unit
        ) {
            onStartRestore()
            // restore purchases with your own code, then:
            onFinishRestore()
        }
    }

observerModeDidInitiatePurchase thông báo cho bạn rằng người dùng đã bắt đầu mua hàng, còn observerModeDidInitiateRestore — rằng người dùng đã bắt đầu khôi phục. Hãy kích hoạt flow mua hàng hoặc khôi phục tùy chỉnh của bạn để phản hồi.

Ngoài ra, hãy nhớ gọi các callback sau để thông báo cho AdaptyUI về quá trình mua hàng hoặc khôi phục. Điều này cần thiết để flow hoạt động đúng, chẳng hạn như hiển thị loader, và nhiều thứ khác:

CallbackDescription
onStartPurchase()Callback cần được gọi để thông báo cho AdaptyUI rằng quá trình mua đã bắt đầu.
onFinishPurchase()Callback cần được gọi để thông báo cho AdaptyUI rằng quá trình mua đã hoàn tất.
onStartRestore()Callback cần được gọi để thông báo cho AdaptyUI rằng quá trình khôi phục đã bắt đầu.
onFinishRestore()Callback cần được gọi để thông báo cho AdaptyUI rằng quá trình khôi phục đã hoàn tất.

Flow vẫn mở trong khi code của bạn chạy — hãy tự đóng nó sau khi mua thành công hoặc khôi phục.

  1. Đăng ký resolver trước khi hiển thị bất kỳ màn hình nào:

    import com.adapty.kmp.AdaptyUI
    
    AdaptyUI.setObserverModeResolver(MyObserverModeResolver())

    Nếu không có resolver được đăng ký, flow view sẽ không có cách nào chuyển giao việc mua hàng cho code của bạn, và sẽ không có gì xảy ra khi người dùng nhấn nút mua.

  2. Tạo và hiển thị flow view như bình thường: tải flow và tạo view cho nó, sau đó hiển thị nó. Không cần thêm tham số nào — sau khi resolver đã được đăng ký, mọi flow do Adapty render đều định tuyến các giao dịch mua và khôi phục qua nó.

Warning

Đừng quên báo cáo giao dịch và liên kết nó với paywall. Nếu không, Adapty sẽ không nhận ra giao dịch và sẽ không xác định được paywall nguồn của giao dịch mua.