Phản hồi hành động flow - Capacitor
Nếu bạn đang xây dựng flow hoặc paywall bằng Flow Builder hoặc Paywall Builder của Adapty, việc thiết lập các nút đúng cách là rất quan trọng:
- Thêm một nút trong builder và gán cho nó một action có sẵn hoặc tạo một custom action ID.
- Viết code trong app của bạn để xử lý từng action đã gán.
Hướng dẫn này trình bày cách xử lý các custom action và action có sẵn trong code của bạn.
Việc mua hàng, khôi phục, đóng flow và paywall, cũng như mở URL đều được xử lý tự động. Bạn có thể cấu hình hành vi mặc định của chúng hoặc triển khai phản hồi cho các custom action.
Khi bạn đặt một handler cho một sự kiện, hành vi mặc định của sự kiện đó sẽ bị thay thế hoàn toàn. Các handler bạn không đặt sẽ giữ nguyên hành vi mặc định.
Đóng flow và paywall
Để thêm nút đóng flow hoặc paywall:
- Trong builder, thêm một nút và gán cho nó hành động Close.
- Trong code của ứng dụng, triển khai một handler cho hành động
closeđể đóng flow hoặc paywall.
Trong Capacitor SDK, hành động close sẽ tự động đóng flow hoặc paywall theo mặc định. 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.
const view = await createFlowView(flow);
const unsubscribe = await view.setEventHandlers({
onCloseButtonPress() {
return true; // allow the flow to close
},
});Trên Android, nút Back của hệ thống và cử chỉ vuốt để quay lại sẽ kích hoạt một sự kiện riêng là onAndroidSystemBack. Trong SDK v4, nút này không còn tự động đóng flow theo mặc định nữa. Trả về true từ handler nếu bạn muốn nút Back đóng flow:
const unsubscribe = await view.setEventHandlers({
onAndroidSystemBack() {
return true; // close the flow when the Back button is pressed
},
});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 giao dịch mua), hãy thêm phần tử Link trong builder và xử lý nó 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ừ flow hoặc paywall (ví dụ: Terms of use hoặc Privacy policy):
- 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ở.
- Nếu cần, trong code ứng dụng của bạn, hãy triển khai một handler cho hành động
openUrlđể mở URL nhận được theo cách của riêng bạn.
Trong Capacitor SDK, khi nhấn vào URL, mặc định sẽ mở bằng trình duyệt gốc: SDK gọi adapty.openWebUrl({ url, openIn }), tuân theo tùy chọn Open in bạn đã thiết lập trong builder, và giữ nguyên flow. Tuy nhiên, bạn có thể ghi đè hành vi này trong code nếu cần.
const unsubscribe = await view.setEventHandlers({
onUrlPress(url) {
// Open the URL your own way, e.g. with the Capacitor Browser plugin
Browser.open({ url });
return false; // keep the flow open
},
});Xử lý các hành động tùy chỉnh
Để thêm nút xử lý các hành động khác:
- Trong builder, thêm một nút, gán cho nó hành động Custom, và đặt cho nó một ID.
- Trong code của ứng dụng, triển khai 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 nút để hiển thị một flow hoặc paywall khác:
const unsubscribe = await view.setEventHandlers({
onCustomAction(actionId) {
if (actionId === 'openNewPaywall') {
// Display another flow or paywall
}
},
});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 bấm đúng cách là rất quan trọng:
- 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.
- Viết code trong ứng dụng của bạn để xử lý từng hành động bạn đã gán.
Hướng dẫn này chỉ 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.
Đóng paywall
Để thêm nút đóng paywall:
- Trong Paywall Builder, thêm một nút và gán cho nó hành động Close.
- Trong code của ứng dụng, triển khai trình xử lý cho hành động
closeđể đóng paywall.
Trong Capacitor SDK, hành động close sẽ kích hoạt việc đóng paywall theo mặc định. 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 việc mở một paywall khác.
const view = await createPaywallView(paywall);
const unsubscribe = view.setEventHandlers({
onCloseButtonPress() {
console.log('User closed paywall');
return true; // Allow the paywall to close
}
});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ở liên kết từ paywall của bạn (ví dụ: Terms of use hoặc Privacy policy):
- 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ở.
- 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 Capacitor SDK, action window.open sẽ mặc định mở URL. Tuy nhiên, bạn có thể ghi đè hành vi này trong code nếu cần.
const view = await createPaywallView(paywall);
const unsubscribe = view.setEventHandlers({
onUrlPress(url) {
window.open(url, '_blank');
return false; // Don't close the paywall
},
});Đă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:
- Trong paywall builder, thêm một nút và gán cho nó hành động Login.
- 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.
const view = await createPaywallView(paywall);
const unsubscribe = view.setEventHandlers({
onCustomAction(actionId) {
if (actionId === 'login') {
// Navigate to login screen
console.log('User requested login');
}
}
});Xử lý hành động tùy chỉnh
Để thêm một nút xử lý các hành động khác:
- Trong paywall builder, thêm một nút, gán cho nó hành động Custom và đặt cho nó một ID.
- Trong mã nguồn ứ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ý hoặc sản phẩm mua một lần khác, bạn có thể thêm một nút sẽ hiển thị một paywall khác:
const unsubscribe = view.setEventHandlers({
onCustomAction(actionId) {
if (actionId === 'openNewPaywall') {
// Display another paywall
}
},
});