Xử lý hành động nút trong Android SDK

Nếu bạn đang xây dựng paywall bằng Adapty Paywall Builder, việc thiết lập các nút đúng cách là rất quan trọng:

  1. Thêm nút trong paywall builder và gán cho nó một hành động có sẵn hoặc tạo một ID hành động tùy chỉnh.
  2. Viết code trong ứng dụng của bạn để xử lý từng hành động đã gán.

Hướng dẫn này hướng dẫn cách xử lý các hành động tùy chỉnh và hành động có sẵn trong code của bạn.

Chỉ các hành động mua hàng, khôi phục, đóng paywall và mở URL được xử lý tự động. Tất cả các hành động nút khác đều yêu cầu triển khai xử lý phù hợp trong code ứng dụng.

Đóng paywall

Để thêm nút đóng paywall của bạn:

  1. Trong paywall builder, thêm một nút và gán cho nó hành động Close.
  2. Trong code ứng dụng, triển khai một handler cho hành động close để đóng paywall.

Trong Android SDK, hành động close mặc định sẽ kích hoạt việc đóng paywall. Tuy nhiên, bạn có thể ghi đè hành vi này trong code nếu cần. Ví dụ, đóng một paywall có thể kích hoạt mở paywall khác.

override fun onActionPerformed(action: AdaptyUI.Action, context: Context) {
    when (action) {
        AdaptyUI.Action.Close -> (context as? Activity)?.onBackPressed() // default behavior
    }
}

Mở URL từ paywall

Nếu bạn muốn thêm một nhóm liên kết (ví dụ: điều khoản sử dụng và khôi phục mua hàng), hãy thêm phần tử Link trong paywall builder và xử lý nó theo cách tương tự như các nút với hành động Open URL.

Để thêm nút mở liên kết từ paywall của bạn (ví dụ: Terms of use hoặc Privacy policy):

  1. Trong paywall builder, thêm một nút, gán cho nó hành động Open URL, và nhập URL bạn muốn mở.
  2. Trong code ứng dụng, triển khai một handler cho hành động openUrl để mở URL nhận được trong trình duyệt.

Trong Android SDK, hành động openUrl mặc định sẽ kích hoạt việc mở URL. Tuy nhiên, bạn có thể ghi đè hành vi này trong code nếu cần.

override fun onActionPerformed(action: AdaptyUI.Action, context: Context) {
   when (action) {    
       is AdaptyUI.Action.OpenUrl -> {
           val intent = Intent(Intent.ACTION_VIEW, Uri.parse(action.url)) // default behavior
           context.startActivity(intent)
       }
   }
}

Đăng nhập vào ứng dụng

Để thêm nút cho phép người dùng đăng nhập vào ứng dụng:

  1. Trong paywall builder, thêm một nút và gán cho nó hành động Login.
  2. Trong code ứng dụng, triển khai một handler cho hành động login để xác thực người dùng.
override fun onActionPerformed(action: AdaptyUI.Action, context: Context) {
   when (action) {
       AdaptyUI.Action.Login -> {
           val intent = Intent(context, LoginActivity::class.java)
           context.startActivity(intent)
       }
   }
}

Xử lý hành động tùy chỉnh

Để thêm nút xử lý các hành động khác:

  1. Trong paywall builder, thêm một nút, gán cho nó hành động Custom, và gán cho nó một ID.
  2. Trong code ứng dụng, triển khai một handler cho ID hành động bạn đã tạo.

Ví dụ, nếu bạn có một bộ ưu đãi gói đăng ký khác hoặc sản phẩm mua một lần, bạn có thể thêm một nút để hiển thị paywall khác:

override fun onActionPerformed(action: AdaptyUI.Action, context: Context) {
   when (action) {
       is AdaptyUI.Action.Custom -> {
           if (action.customId == "openNewPaywall") {
               // Display another paywall
           }
       }
   }
}