ÿÿ Hiển thị Flows & Paywalls - Android | Tài liệu Adapty

Hiển thị flows & paywalls - Android

Display flows and paywalls
✦
Flow ÄÆ°á»£c tạo trong Flow Builder — render nguyên bản trên thiết bị, không cần WebView
✦
Paywall của Paywall Builder Toàn bộ nội dung Paywall Builder hiện có

Nếu bạn đã tạo má»™t flow hoặc paywall, bạn không cần lo lắng vá» việc render nó trong code ứng dụng di động để hiển thị cho ngưá»i dùng. Flow hoặc paywall đó đã chứa cả ná»™i dung cần hiển thị lẫn cách thức hiển thị.

Hướng dẫn này dành cho các flow và paywall xây dựng bằng Paywall Builder mới được render bởi Adapty. Quy trình sẽ khác đối với paywall dùng Remote Config và Observer mode.

Äể lấy đối tượng flowConfiguration dùng bên dưới, xem Lấy flows & paywalls.

Các tham số yêu cầu:

Tham sốBắt buộcMô tả
flowConfigurationbắt buộcCung cấp một đối tượng AdaptyUI.FlowConfiguration chứa thông tin hiển thị của flow. Dùng phương thức AdaptyUI.getFlowConfiguration(flow) để tải nó. Xem thêm tại chủ đỠFetch the view configuration.
productstùy chá»nCung cấp má»™t mảng AdaptyPaywallProduct để tối ưu thá»i Ä‘iểm hiển thị sản phẩm trên màn hình. Nếu truyá»n null, AdaptyUI sẽ tá»± động lấy các sản phẩm cần thiết.
eventListenertùy chá»nCung cấp má»™t AdaptyFlowEventListener để lắng nghe các sá»± kiện cá»§a flow. Nên dùng AdaptyFlowDefaultEventListener để tiện hÆ¡n. Xem thêm tại chá»§ đỠHandle flow & paywall events.
insetstùy chá»n

Insets là khoảng trống xung quanh flow giúp các phần tử có thể nhấn không bị ẩn sau thanh hệ thống.

Mặc định: Unspecified — Adapty sẽ tá»± động Ä‘iá»u chỉnh insets, phù hợp vá»›i các flow hiển thị toàn màn hình (edge-to-edge).

Nếu flow cá»§a bạn không phải edge-tÿÿo-edge, bạn có thể muốn đặt insets tùy chỉnh. Xem hướng dẫn tại phần Change flow insets bên dưới.

customAssetstùy chá»nTruyá»n má»™t đối tượng AdaptyCustomAssets để thay thế hình ảnh và video trong flow hoặc paywall cá»§a bạn lúc runtime. Xem thêm tại Customize assets.
tagResolvertùy chá»nDùng AdaptyUiTagResolver để xá»­ lý các thẻ tùy chỉnh trong văn bản cá»§a flow. Resolver này nhận má»™t tham số tag và chuyển đổi nó thành chuá»—i tương ứng. Xem thêm tại chá»§ đỠCustom tags in Paywall Builder.
timerResolvertùy chá»nTruyá»n resolver vào đây nếu bạn muốn dùng chức năng hẹn giá» tùy chỉnh.

Muốn xem ví dụ thá»±c tế vá» cách tích hợp Adapty SDK vào ứng dụng di động? Hãy xem ứng dụng mẫu cá»§a chúng tôi, nÆ¡i minh há»a toàn bá»™ quá trình thiết lập, bao gồm hiển thị paywall, thá»±c hiện mua hàng và các chức năng cÆ¡ bản khác.

Thay đổi inset của flow

Inset là khoảng cách xung quanh flow, giúp các phần tá»­ có thể nhấn không bị che khuất bởi thanh hệ thống. Mặc định, Adapty sẽ tá»± động Ä‘iá»u chỉnh inset, phù hợp vá»›i các flow hiển thị toàn màn hình (edge-to-edge).

Nếu flow của bạn không phải edge-to-edge, bạn có thể muốn đặt inset tùy chỉnh:

  • Nếu cả thanh trạng thái lẫn thanh Ä‘iá»u hướng Ä‘á»u không chồng lên AdaptyFlowView, hãy dùng AdaptyFlowInsets.None.
  • Vá»›i các trưá»ng hợp phức tạp hÆ¡n, ví dụ như flow chồng lên thanh trạng thái phía trên nhưng không chồng lên phần dưới, bạn có thể chỉ đặt bottomInset vá» 0 như ví dụ dưới đây:

Sử dụng timer do nhà phát triển định nghĩa

Äể sá»­ dụng timer do nhà phát triển định nghÄ©a trong ứng dụng mobile cá»§a bạn, hãy tạo má»™t đối tượng timerResolver—má»™t dictionary hoặc map liên kết các timer tùy chỉnh vá»›i các giá trị chuá»—i sẽ thay thế chúng khi flow được render. Äây là ví dụ:

Trong ví dụ này, CUSTOM_TIMER_NY là Timer ID cá»§a timer do lập trình viên tá»± định nghÄ©a, được thiết lập trong Adapty dashboard. timerResolver đảm bảo ứng dụng cá»§a bạn cập nhật timer động vá»›i giá trị chính xác—chẳng hạn như 13d 09h 03m 34s (được tính bằng thá»i Ä‘iểm kết thúc cá»§a timer, ví dụ như Ngày đầu năm má»›i, trừ Ä‘i thá»i Ä‘iểm hiện tại).

Sử dụng custom tag

Äể sá»­ dụng custom tag trong ứng dụng mobile, hãy tạo má»™t đối tượng tagResolver—má»™t dictionary hoặc map liên kết các custom tag vá»›i giá trị chuá»—i sẽ thay thế chúng khi flow được render. Ví dụ:

Trong ví dụ này, USERNAME là custom tag bạn đã nhập trong Adapty dashboard dưới dạng <USERNAME/>. tagResolver đảm bảo rằng ứng dụng của bạn tự động thay thế custom tag này bằng giá trị được chỉ định—ví dụ như John.

Chúng tôi khuyến nghị tạo và Ä‘iá»n dữ liệu vào tagResolver ngay trước khi hiển thị flow cá»§a bạn. Sau khi sẵn sàng, hãy truyá»n nó vào phương thức AdaptyUI mà bạn dùng để hiển thị flow.

Thay đổi màu chỉ báo tải của flow

Bạn có thể ghi đè màu mặc định của chỉ báo tải theo cách sau:


<style name="AppTheme" parent="android:Theme.Material.Light.NoActionBar">

    <item name="adapty_progressIndicatorColor">@color/yourColor</item>
</style>

Nếu bạn đã tùy chỉnh paywall bằng Paywall Builder, bạn không cần lo lắng vá» việc render nó trong code ứng dụng để hiển thị cho ngưá»i dùng. Paywall đó đã bao gồm cả ná»™i dung hiển thị lẫn cách thức hiển thị.

Hướng dẫn này chỉ dành cho paywall dùng Paywall Builder mới yêu cầu SDK v3.0. Quy trình hiển thị paywall sẽ khác nhau tùy theo phiên bản Paywall Builder được dùng để thiết kế, paywall dùng Remote Config, và chế độ Observer.

Äể lấy đối tượng viewConfiguration được dùng bên dưới, xem Tải paywall Paywall Builder và cấu hình cá»§a chúng.

Tham số yêu cầu:

Tham sốBắt buộcMô tả
viewConfigurationbắt buộcCung cấp đối tượng AdaptyUI.LocalizedViewConfiguration chứa thông tin hiển thị của paywall. Sử dụng phương thức Adapty.getViewConfiguration(paywall) để tải nó. Xem thêm tại chủ đỠLấy cấu hình hiển thị của paywall.
productstùy chá»nCung cấp má»™t mảng AdaptyPaywallProduct để tối ưu thá»i Ä‘iểm hiển thị sản phẩm trên màn hình. Nếu truyá»n null, AdaptyUI sẽ tá»± động tải các sản phẩm cần thiết.
eventListenertùy chá»nCung cấp AdaptyUiEventListener để lắng nghe các sá»± kiện cá»§a paywall. Nên kế thừa AdaptyUiDefaultEventListener để dá»… sá»­ dụng hÆ¡n. Xem thêm tại chá»§ đỠXá»­ lý sá»± kiện paywall.
insetstùy chá»n

Insets là khoảng trống xung quanh paywall giúp các phần tử có thể nhấn không bị ẩn sau thanh hệ thống.

Mặc định: UNSPECIFIED — Adapty sẽ tá»± động Ä‘iá»u chỉnh insets, phù hợp vá»›i các paywall hiển thị toàn màn hình (edge-to-edge).

Nếu paywall của bạn không phải edge-to-edge, bạn có thể muốn đặt insets tùy chỉnh. Cách thực hiện xem tại phần Thay đổi insets của paywall bên dưới.

personalizedOfferResolvertùy chá»nÄể chỉ định giá cá nhân hóa (Ä‘á»c thêm), hãy implement AdaptyUiPersonalizedOfferResolver và truyá»n logic cá»§a bạn để ánh xạ AdaptyPaywallProduct thành true nếu giá sản phẩm được cá nhân hóa, ngược lại là false.
tagResolvertùy chá»nSá»­ dụng AdaptyUiTagResolver để xá»­ lý các thẻ tùy chỉnh trong văn bản cá»§a paywall. Resolver này nhận tham số là má»™t thẻ và chuyển đổi nó thành chuá»—i tương ứng. Xem thêm tại chá»§ đỠCustom tags in Paywall Builder.
timerResolvertùy chá»nTruyá»n resolver vào đây nếu bạn muốn sá»­ dụng chức năng hẹn giá» tùy chỉnh.

Muốn xem ví dụ thá»±c tế vá» cách tích hợp Adapty SDK vào ứng dụng di động? Hãy xem ứng dụng mẫu cá»§a chúng tôi, nÆ¡i minh há»a toàn bá»™ quá trình thiết lập, bao gồm hiển thị paywall, thá»±c hiện mua hàng và các chức năng cÆ¡ bản khác.

Thay đổi insets của paywall

Insets là khoảng trống xung quanh paywall, giúp các phần tá»­ có thể nhấn không bị ẩn sau thanh hệ thống. Theo mặc định, Adapty sẽ tá»± động Ä‘iá»u chỉnh insets, phù hợp vá»›i các paywall hiển thị toàn màn hình (edge-to-edge).

Nếu paywall của bạn không hiển thị toàn màn hình, bạn có thể muốn đặt insets tùy chỉnh:

  • Nếu cả thanh trạng thái lẫn thanh Ä‘iá»u hướng Ä‘á»u không chồng lên AdaptyPaywallView, hãy dùng AdaptyPaywallInsets.NONE.
  • Vá»›i các thiết lập tùy chỉnh hÆ¡n, chẳng hạn khi paywall chồng lên thanh trạng thái phía trên nhưng không chồng lên phần dưới, bạn có thể chỉ đặt bottomInset thành 0 như ví dụ dưới đây:

Sử dụng timer do nhà phát triển định nghĩa

Äể sá»­ dụng timer do nhà phát triển định nghÄ©a trong ứng dụng cá»§a bạn, hãy tạo má»™t đối tượng timerResolver—má»™t dictionary hoặc map ánh xạ các timer tùy chỉnh vá»›i các giá trị chuá»—i sẽ thay thế chúng khi paywall được render. Äây là má»™t ví dụ:

Trong ví dụ này, CUSTOM_TIMER_NY là Timer ID cá»§a timer do developer định nghÄ©a mà bạn đã cài đặt trong Adapty dashboard. timerResolver đảm bảo ứng dụng cá»§a bạn cập nhật timer động vá»›i giá trị chính xác—chẳng hạn như 13d 09h 03m 34s (được tính bằng thá»i gian kết thúc cá»§a timer, như Ngày Äầu Năm Má»›i, trừ Ä‘i thá»i gian hiện tại).

Sử dụng custom tag

Äể sá»­ dụng custom tag trong ứng dụng di động, hãy tạo má»™t đối tượng tagResolver—má»™t dictionary hoặc map ánh xạ các custom tag vá»›i giá trị chuá»—i sẽ thay thế chúng khi paywall được hiển thị. Dưới đây là ví dụ:

Trong ví dụ này, USERNAME là custom tag bạn đã nhập trong Adapty dashboard dưới dạng <USERNAME/>. tagResolver đảm bảo rằng ứng dụng của bạn sẽ tự động thay thế custom tag này bằng giá trị được chỉ định—ví dụ như John.

Chúng tôi khuyến nghị bạn tạo và Ä‘iá»n dữ liệu vào tagResolver ngay trước khi hiển thị paywall. Sau khi đã sẵn sàng, hãy truyá»n nó vào phương thức AdaptyUI mà bạn sá»­ dụng để hiển thị paywall.

Thay đổi màu của loading indicator trên paywall

Bạn có thể ghi đè màu mặc định của loading indicator theo cách sau:


<style name="AppTheme" parent="android:Theme.Material.Light.NoActionBar">

    <item name="adapty_progressIndicatorColor">@color/yourColor</item>
</style>
ÿÿÿÿ