ÿÿ Kiểm Tra Trạng Thái Gói Äăng Ký | Tài liệu Adapty

Kiểm tra trạng thái gói đăng ký trong React Native SDK

Äể quyết định xem ngưá»i dùng có thể truy cập ná»™i dung trả phí hay cần xem paywall hay không, bạn cần kiểm tra mức độ truy cập cá»§a há» trong hồ sÆ¡ ngưá»i dùng.

Bài viết này hướng dẫn bạn cách Ä‘á»c trạng thái hồ sÆ¡ ngưá»i dùng để quyết định nên hiển thị gì — paywall hay ná»™i dung trả phí.

Lấy trạng thái gói đăng ký

Khi quyết định hiển thị paywall hay ná»™i dung trả phí cho ngưá»i dùng, bạn kiểm tra mức độ truy cập trong hồ sÆ¡ cá»§a há». Bạn có hai lá»±a chá»n:

  • Gá»i getProfile nếu cần dữ liệu hồ sÆ¡ má»›i nhất ngay lập tức (ví dụ khi khởi chạy ứng dụng) hoặc muốn ép buá»™c cập nhật.
  • Thiết lập cập nhật hồ sÆ¡ tá»± động để giữ má»™t bản sao cục bá»™ được tá»± động làm má»›i má»—i khi trạng thái gói đăng ký thay đổi.

Lấy hồ sÆ¡ ngưá»i dùng

Cách đơn giản nhất để lấy trạng thái gói đăng ký là dùng phương thức getProfile:

try {
    const profile = await adapty.getProfile();
} catch (error) {
  // handle the error
}

Lắng nghe cập nhật gói đăng ký

Äể tá»± động nhận cập nhật hồ sÆ¡ trong ứng dụng:

  1. Dùng adapty.addEventListener('onLatestProfileLoad') để lắng nghe các thay đổi hồ sÆ¡ — Adapty sẽ tá»± động gá»i phương thức này má»—i khi trạng thái gói đăng ký cá»§a ngưá»i dùng thay đổi.
  2. Lưu dữ liệu hồ sÆ¡ được cập nhật khi phương thức này được gá»i, để bạn có thể sá»­ dụng xuyên suốt ứng dụng mà không cần thá»±c hiện thêm các yêu cầu mạng.
class SubscriptionManager {
    private currentProfile: any = null;
    
    constructor() {
        // Listen for profile updates
        adapty.addEventListener('onLatestProfileLoad', (profile) => {
            this.currentProfile = profile;
            // Update UI, unlock content, etc.
        });
    }
    
    // Use stored profile instead of calling getProfile()
    hasAccess(): boolean {
        return this.currentProfile?.accessLevels?.['premium']?.isActive ?? false;
    }
}

Adapty tá»± động gá»i event listener onLatestProfileLoad khi ứng dụng khởi động, cung cấp dữ liệu gói đăng ký đã được cache ngay cả khi thiết bị offline.

Kết nối hồ sơ với logic paywall

Khi cần đưa ra quyết định ngay lập tức vá» việc hiển thị paywall hay cấp quyá»n truy cập vào tính năng trả phí, bạn có thể kiểm tra hồ sÆ¡ ngưá»i dùng trá»±c tiếp. Cách tiếp cận này hữu ích cho các tình huống như khi khởi chạy ứng dụng, khi vào các phần premium, hoặc trước khi hiển thị ná»™i dung cụ thể.

const checkAccessLevel = async () => {
  try {
    const profile = await adapty.getProfile();
    return profile.accessLevels['YOUR_ACCESS_LEVEL']?.isActive === true;
  } catch (error) {
    console.warn('Error checking access level:', error);
    return false; // Show paywall if access check fails
  }
};

const initializePaywall = async () => {
  try {
    await loadPaywall();
    
    const hasAccess = await checkAccessLevel();
    if (!hasAccess) {
      // Show paywall if no access
    }
  } catch (error) {
    console.warn('Error initializing paywall:', error);
  }
};

Bước tiếp theo

Bây giá» khi bạn đã biết cách theo dõi trạng thái gói đăng ký, hãy tìm hiểu cách làm việc vá»›i hồ sÆ¡ ngưá»i dùng để đảm bảo há» có thể truy cập những gì đã thanh toán.

ÿÿÿÿ