ÿÿ Hiển thị onboarding trên React Native | Tài liệu Adapty

Hiển thị onboarding trong React Native SDK

Onboardings đã bị deprecated trong SDK v4 và sẽ bị xóa trong má»™t bản phát hành tương lai. Chúng không còn nhận được các bản sá»­a lá»—i hoặc cải tiến nữa. Hãy sá»­ dụng flows thay thế: không giống như onboardings chạy bên trong WebView, flows render trá»±c tiếp trên thiết bị — mang lại animation mượt mà hÆ¡n, giao diện native nhất quán, thá»i gian tải nhanh hÆ¡n, và không phụ thuá»™c vào WebView runtime. Xem Lấy flows & paywalls và Hiển thị flows & paywalls để bắt đầu.

Nếu bạn đã tùy chỉnh onboarding bằng builder, 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. Onboarding đó chứa cả ná»™i dung cần hiển thị lẫn cách hiển thị.

Trước khi bắt đầu, hãy đảm bảo rằng:

  1. Bạn đã cài đặt Adapty React Native SDK phiên bản 3.8.0 trở lên.
  2. Bạn đã tạo một onboarding.
  3. Bạn đã thêm onboarding vào một placement.

Adapty React Native SDK cung cấp hai cách để hiển thị onboarding:

  • React component: Embedded component cho phép bạn tích hợp vào kiến trúc và hệ thống Ä‘iá»u hướng cá»§a ứng dụng.

  • Modal presentation

React component

Äể nhúng má»™t onboarding vào cây component hiện có cá»§a bạn, hãy sá»­ dụng component AdaptyOnboardingView trá»±c tiếp trong cấu trúc phân cấp component React Native. Component nhúng này cho phép bạn tích hợp nó vào kiến trúc và hệ thống Ä‘iá»u hướng cá»§a ứng dụng.

Trên Android, chúng tôi khuyến nghị cấu hình bổ sung cho AdaptyOnboardingView để tránh hiện tượng lỗi hiển thị trực quan. Xem Giao diện hệ thống chồng lên nội dung onboarding trên Android.

Äể hiển thị onboarding dưới dạng màn hình độc lập mà ngưá»i dùng có thể đóng lại, 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ó thể được sá»­ 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 má»™t view má»›i.

Không được tái sử dụng cùng một view mà không tạo lại. Việc này sẽ dẫn đến lỗi AdaptyUIError.viewAlreadyPresented.

Cấu hình kiểu hiển thị trên iOS

Cấu hình cách paywall được hiển thị 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 các giá trị 'full_screen' (mặc định) hoặc 'page_sheet'.

try {
  await view.present({ iosPresentationStyle: 'page_sheet' });
} catch (error) {
  // handle the error
}

Loader trong quá trình hiển thị onboarding

Khi hiển thị onboarding trong React Native, bạn có thể thấy má»™t màn hình trắng hoặc màn hình loading ngắn xuất hiện trước khi onboarding hiện ra. Äiá»u này xảy ra trong khi native view bên dưới Ä‘ang được khởi tạo. Bạn có thể xá»­ lý vấn đỠnày theo nhiá»u cách khác nhau tùy thuá»™c vào nhu cầu và quy trình làm việc cá»§a bạn.

Kiểm soát splash screen bằng onFinishedLoading

Cách này chỉ khả dụng khi sử dụng React component. Không áp dụng được cho modal presentation.

Cách được khuyến nghị cho React Native là giữ màn hình chỠ(splash screen) hoặc lớp phủ tùy chỉnh hiển thị cho đến khi onboarding tải xong hoàn toàn, sau đó ẩn nó đi theo cách thủ công.

Khi sử dụng React component (AdaptyOnboardingView), hãy chỠsự kiện onFinishedLoading trước khi ẩn splash screen hoặc lớp phủ:

Tùy chỉnh native loader

Expo-managed workflow không há»— trợ việc đặt các layout native tùy chỉnh (ví dụ: res/layout trên Android). Äối vá»›i ứng dụng Expo, cách duy nhất khả thi là kiểm soát splash screen hoặc sá»­ dụng React Native overlay.

Bạn có thể thay thế native loader bằng các layout theo từng ná»n tảng trên Android và iOS. Nếu bạn Ä‘ang sá»­ dụng modal presentation, đây là lá»±a chá»n duy nhất cá»§a bạn.

Tuy nhiên, cách tiếp cận này thưá»ng kém tiện lợi hÆ¡n đối vá»›i ứng dụng React Native:

  • Yêu cầu triển khai riêng biệt cho Android và iOS

  • Không tương thích vá»›i Expo-managed workflow Xác định placeholder cho từng ná»n tảng:

  • iOS: Thêm AdaptyOnboardingPlaceholderView.xib vào dá»± án Xcode cá»§a bạn. Tìm hiểu thêm.

  • Android: Tạo adapty_onboarding_placeholder_view.xml trong res/layout và định nghÄ©a placeholder tại đó. Tìm hiểu thêm.

Tính năng tùy chỉnh cách mở liên kết trong onboardings được hỗ trợ từ Adapty SDK v3.15.1 trở lên.

Theo mặc định, các liên kết trong onboardings sẽ mở trong trình duyệt ná»™i bá»™ cá»§a ứ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ị các trang web ngay trong ứng dụng, giúp há» xem ná»™i dung mà không cần rá»i khá»i app.

Nếu bạn muốn mở liên kết bằng trình duyệt bên ngoài, bạn có thể tùy chỉnh hành vi này bằng cách đặt tham số externalUrlsPresentation thành WebPresentation.BrowserOutApp:

Xử lý sự cố

Giao diện hệ thống che khuất nội dung onboarding trên Android

Cài đặt này chỉ được hỗ trợ trong các dự án React Native thuần (bare).

Nếu bạn Ä‘ang dùng Expo managed workflow, bạn không thể thêm Android resource này trá»±c tiếp. Äể áp dụng cài đặt này, bạn cần tạo má»™t custom Expo config plugin để thêm Android resource tương ứng và đăng ký nó trong app.config.js. Äiá»u này là bắt buá»™c vì Expo quản lý native Android project cho bạn.

Khi sá»­ dụng AdaptyOnboardingView trên Android, các thành phần giao diện hệ thống như thanh trạng thái và thanh Ä‘iá»u hướng có thể hiển thị đè lên ná»™i dung paywall. Äể tránh Ä‘iá»u này, hãy thêm tài nguyên boolean sau vào ứng dụng cá»§a bạn:

  1. Truy cập android/app/src/main/res/values. Nếu chưa có file bools.xml, hãy tạo mới.

  2. Thêm tài nguyên sau:

<resources>
    <bool name="adapty_onboarding_enable_safe_area_paddings">false</bool>
</resources>

Lưu ý rằng thay đổi này áp dụng toàn cục cho tất cả các onboarding trong ứng dụng của bạn.

Các bước tiếp theo

Sau khi hiển thị onboarding, bạn sẽ muốn xá»­ lý các tương tác và sá»± kiện cá»§a ngưá»i dùng. Tìm hiểu cách xá»­ lý các sá»± kiện onboarding để phản hồi hành động cá»§a ngưá»i dùng và theo dõi analytics.

ÿÿÿÿ