ÿÿ Phản hồi các hành động Flow - iOS | Tài liệu Adapty

Phản hồi các hành động flow - iOS

Nếu bạn Ä‘ang xây dá»±ng các flow hoặc paywall bằng Adapty Flow Builder hoặc Paywall Builder, việc thiết lập các nút bấm đú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 action ID tùy chỉnh.
  2. Viết code trong ứng dụng để xử lý từng hành động bạn đã gán.

Hướng dẫn này trình bày 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ỉ việc đóng flow/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.

iOS SDK có thể phản hồi các yêu cầu quyá»n hệ thống, chẳng hạn như thông báo đẩy hoặc quyá»n truy cập camera, thông qua AdaptySystemRequestsHandler. Flows chưa kích hoạt các yêu cầu này, vì vậy bạn chưa cần xá»­ lý chúng.

Äóng flow và paywall

Äể thêm nút đóng flow hoặc paywall:

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

Trong iOS SDK, hành động close mặc định sẽ kích hoạt việc đóng flow hoặc 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 flow có thể kích hoạt mở một flow khác.

.flow(
    isPresented: $flowPresented,
    flowConfiguration: flowConfiguration,
    didPerformAction: { action in
        switch action {
        case .close:
            flowPresented = false // dismiss the flow or paywall
        default:
            break
        }
    },
    didFinishPurchase: { product, purchaseResult in /* dismiss, or do nothing to let the flow continue */ },
    didFailPurchase: { product, error in /* handle the error */ },
    didFinishRestore: { profile in /* check access level and dismiss */ },
    didFailRestore: { error in /* handle the error */ },
    didReceiveError: { error in flowPresented = false }
)

Mở URL từ flow và 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 builder và xá»­ lý nó giống như các nút có hành động Open URL.

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

  1. Trong 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 iOS SDK, hành động openURL mặc định sẽ mở URL. Tuy nhiên, bạn có thể ghi đè hành vi này trong code nếu cần.

.flow(
    isPresented: $flowPresented,
    flowConfiguration: flowConfiguration,
    didPerformAction: { action in
        switch action {
        case let .openURL(url):
            UIApplication.shared.open(url, options: [:]) // default behavior
        default:
            break
        }
    },
    didFinishPurchase: { product, purchaseResult in /* dismiss, or do nothing to let the flow continue */ },
    didFailPurchase: { product, error in /* handle the error */ },
    didFinishRestore: { profile in /* check access level and dismiss */ },
    didFailRestore: { error in /* handle the error */ },
    didReceiveError: { error in flowPresented = false }
)

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

Äể thêm má»™t nút xá»­ lý các hành động khác:

  1. Trong 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 của bạn, implement một handler cho action ID bạn đã tạo.

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

.flow(
    isPresented: $flowPresented,
    flowConfiguration: flowConfiguration,
    didPerformAction: { action in
        switch action {
        case let .custom(id):
            if id == "openNewPaywall" {
                // Display another flow or paywall
            }
        default:
            break
        }
    },
    didFinishPurchase: { product, purchaseResult in /* dismiss, or do nothing to let the flow continue */ },
    didFailPurchase: { product, error in /* handle the error */ },
    didFinishRestore: { profile in /* check access level and dismiss */ },
    didFailRestore: { error in /* handle the error */ },
    didReceiveError: { error in flowPresented = false }
)

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 action có sẵn hoặc tạo một custom action ID.
  2. Viết code trong ứng dụng để xử lý từng action bạn đã gán.

Hướng dẫn này hướng dẫn cách xử lý các custom action và action có sẵn trong code của bạn.

Chỉ có mua hàng, khôi phục, đóng paywall và mở URL được xá»­ lý tá»± động. Tất cả các action 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:

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

Trong iOS SDK, hành động close mặc định sẽ tự động đó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.

func paywallController(_ controller: AdaptyPaywallController,
                       didPerform action: AdaptyUI.Action) {
    switch action {
        case .close:
            controller.dismiss(animated: true) // default behavior
            break
    }
}

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 giao dịch), 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 có hành động Open URL.

Äể thêm nút mở má»™t liên kết từ paywall (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 của ứng dụng, triển khai handler cho hành động openUrl để mở URL nhận được trong trình duyệt.

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

func paywallController(_ controller: AdaptyPaywallController,
                       didPerform action: AdaptyUI.Action) {
    switch action {
        case let .openURL(url):
            UIApplication.shared.open(url, options: [:]) // default behavior
        break
    }
}

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

Äể thêm nút đăng nhập cho ngưá»i dùng vào ứng dụng cá»§a bạn:

  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 cá»§a bạn, triển khai má»™t handler cho hành động login để xác định ngưá»i dùng.
func paywallController(_ controller: AdaptyPaywallController,
                      didPerform action: AdaptyUI.Action) {
   switch action {
       case .login:
           // Show a login screen
           let loginVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "LoginViewController")
           controller.present(loginVC, animated: true)
   }
}

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 của bạn, implement 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ý hoặc sản phẩm mua một lần khác, bạn có thể thêm nút để hiển thị một paywall khác:

func paywallController(_ controller: AdaptyPaywallController,
                      didPerform action: AdaptyUI.Action) {
   switch action {
       case let .custom(id):
           if id == "openNewPaywall" {
              // Display another paywall
              }
           }
           break
   }
}
ÿÿÿÿ