Lấy onboarding trong Capacitor SDK
Onboarding đã bị deprecated trong SDK v4 và sẽ bị xóa trong phiên bản tương lai. Chúng không còn được sửa lỗi hay cải thiện nữa. Hãy sử dụng flows thay thế: không giống như onboarding chạy 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.
Sau khi bạn đã thiết kế phần giao diện cho onboarding của mình bằng builder trong Adapty Dashboard, bạn có thể hiển thị nó trong ứng dụng Capacitor của mình. Bước đầu tiên trong quá trình này là lấy onboarding được liên kết với placement và cấu hình view của nó như mô tả bên dưới.
Trước khi bắt đầu, hãy đảm bảo rằng:
- Bạn đã tạo một onboarding.
- Bạn đã thêm onboarding vào một placement.
Lấy onboarding
Khi bạn tạo một onboarding bằng no-code builder của chúng tôi, nó được lưu trữ dưới dạng một container chứa cấu hình mà ứng dụng cần lấy về và hiển thị. Container này quản lý toàn bộ trải nghiệm — nội dung hiển thị, cách trình bày, cũng như cách xử lý các tương tác của người dùng (như câu trả lời quiz hay dữ liệu nhập vào form). Container cũng tự động theo dõi các sự kiện analytics, vì vậy bạn không cần tự triển khai tính năng theo dõi lượt xem riêng.
Để đạt hiệu suất tốt nhất, hãy lấy cấu hình onboarding sớm để hình ảnh có đủ thời gian tải xuống trước khi hiển thị cho người dùng.
Để lấy onboarding, hãy dùng phương thức getOnboarding:
try {
const onboarding = await adapty.getOnboarding({
placementId: 'YOUR_PLACEMENT_ID',
locale: 'en',
params: {
fetchPolicy: 'reload_revalidating_cache_data', // Load from server, fallback to cache
loadTimeoutMs: 5000 // 5 second timeout
}
});
console.log('Onboarding fetched successfully');
} catch (error) {
console.error('Failed to fetch onboarding:', error);
}
Sau đó, gọi phương thức createOnboardingView để tạo một view instance.
Kết quả của phương thức createOnboardingView chỉ có thể được sử dụng một lần. Nếu bạn cần sử dụng lại, hãy gọi lại phương thức createOnboardingView từ đầu.
if (onboarding.hasViewConfiguration) {
try {
const view = await createOnboardingView(onboarding);
console.log('Onboarding view created successfully');
} catch (error) {
console.error('Failed to create onboarding view:', error);
}
} else {
// Use your custom logic
console.log('Onboarding does not have view configuration');
}
Các tham số:
| Tham số | Bắt buộc | Mô tả |
|---|---|---|
| placementId | bắt buộc | Định danh của Placement mong muốn. Đây là giá trị bạn đã chỉ định khi tạo placement trong Adapty Dashboard. |
| locale | tùy chọn mặc định: | Định danh bản địa hóa của onboarding. Tham số này phải là mã ngôn ngữ gồm một hoặc hai thẻ phụ được phân tách bằng dấu trừ (-). Thẻ phụ đầu tiên là ngôn ngữ, thẻ phụ thứ hai là khu vực. Ví dụ: Xem Bản địa hóa và mã locale để biết thêm thông tin về mã locale và cách chúng tôi khuyến nghị sử dụng. |
| params.fetchPolicy | tùy chọn mặc định: | Theo mặc định, SDK sẽ cố tải dữ liệu từ máy chủ và trả về dữ liệu đã được lưu trong cache nếu thất bại. Chúng tôi khuyến nghị tùy chọn này vì nó đảm bảo người dùng luôn nhận được dữ liệu mới nhất. Tuy nhiên, nếu bạn cho rằng người dùng thường xuyên gặp kết nối internet không ổn định, hãy cân nhắc dùng Lưu ý rằng cache vẫn còn nguyên sau khi khởi động lại ứng dụng và chỉ bị xóa khi cài đặt lại ứng dụng hoặc khi xóa thủ công. |
| params.loadTimeoutMs | tùy chọn mặc định: 5000 ms | Giá trị này giới hạn thời gian chờ (tính bằng mili giây) cho phương thức này. Nếu hết thời gian chờ, dữ liệu cache hoặc fallback cục bộ sẽ được trả về. Lưu ý rằng trong một số trường hợp hiếm gặp, phương thức này có thể hết thời gian chờ muộn hơn một chút so với giá trị được chỉ định trong |
Tham số phản hồi
| Tham số | Mô tả |
|---|---|
| onboarding | Một đối tượng AdaptyOnboarding bao gồm: định danh và cấu hình của onboarding, Remote Config, và một số thuộc tính khác. |
Tăng tốc độ tải onboarding với onboarding đối tượng mặc định
Thông thường, onboarding được tải gần như ngay lập tức, vì vậy bạn không cần lo lắng về việc tăng tốc quá trình này. Tuy nhiên, trong những trường hợp bạn có nhiều đối tượng và onboarding, và người dùng có kết nối internet yếu, việc tải onboarding có thể mất nhiều thời gian hơn mong muốn. Trong những tình huống đó, bạn có thể muốn hiển thị onboarding mặc định để đảm bảo trải nghiệm người dùng mượt mà thay vì không hiển thị gì cả.
Để giải quyết vấn đề này, bạn có thể dùng phương thức getOnboardingForDefaultAudience, phương thức này lấy onboarding của placement đã chỉ định cho đối tượng All Users. Tuy nhiên, cần lưu ý rằng cách được khuyến nghị là lấy onboarding bằng phương thức getOnboarding, như đã mô tả trong phần Lấy Onboarding ở trên.
Hãy cân nhắc dùng getOnboarding thay vì getOnboardingForDefaultAudience, vì phương thức sau có những hạn chế quan trọng:
- Vấn đề tương thích: Có thể gây ra sự cố khi hỗ trợ nhiều phiên bản app, đòi hỏi thiết kế tương thích ngược hoặc chấp nhận rằng các phiên bản cũ có thể hiển thị không đúng.
- Không có cá nhân hóa: Chỉ hiển thị nội dung cho đối tượng “All Users”, loại bỏ khả năng nhắm mục tiêu theo quốc gia, attribution, hoặc thuộc tính tùy chỉnh.
Nếu tốc độ tải nhanh hơn quan trọng hơn những hạn chế này đối với trường hợp sử dụng của bạn, hãy dùng getOnboardingForDefaultAudience như minh họa bên dưới. Ngược lại, hãy dùng getOnboarding như đã mô tả ở trên.
try {
const onboarding = await adapty.getOnboardingForDefaultAudience({
placementId: 'YOUR_PLACEMENT_ID',
locale: 'en',
params: {
fetchPolicy: 'reload_revalidating_cache_data' // Load from server, fallback to cache
}
});
console.log('Default audience onboarding fetched successfully');
} catch (error) {
console.error('Failed to fetch default audience onboarding:', error);
}
Tham số:
| Tham số | Bắt buộc | Mô tả |
|---|---|---|
| placementId | bắt buộc | Mã định danh của Placement mong muốn. Đây là giá trị bạn đã chỉ định khi tạo placement trong Adapty Dashboard. |
| locale | tùy chọn mặc định: | Mã định danh bản địa hóa của onboarding. Tham số này phải là mã ngôn ngữ gồm một hoặc hai thẻ con được phân tách bằng ký tự dấu trừ (-). Thẻ con đầu tiên là ngôn ngữ, thẻ con thứ hai là khu vực. Ví dụ: Xem Bản địa hóa và mã locale để biết thêm thông tin về mã locale và cách chúng tôi khuyến nghị sử dụng. |
| params.fetchPolicy | tùy chọn mặc định: | Theo mặc định, SDK sẽ cố tải dữ liệu từ máy chủ và trả về dữ liệu đã lưu trong cache nếu thất bại. Chúng tôi khuyến nghị tùy chọn này vì nó đảm bảo người dùng luôn nhận được dữ liệu mới nhất. Tuy nhiên, nếu bạn cho rằng người dùng của mình hay gặp tình trạng mạng không ổn định, hãy cân nhắc dùng Lưu ý rằng cache vẫn còn nguyên sau khi khởi động lại ứng dụng và chỉ bị xóa khi gỡ cài đặt ứng dụng hoặc thực hiện dọn dẹp thủ công. |