ÿÿ 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 Capacitor SDK

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

Bài viết này hướng dẫn cách truy cập trạng thái hồ sÆ¡ ngưá»i dùng để quyết định nên hiển thị gì cho hỠ— cho há» xem paywall hay cho phép há» truy cập các tính năng trả phí.

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

Khi quyết định có nên 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 bạn cần dữ liệu hồ sÆ¡ má»›i nhất ngay lập tức (ví dụ: khi khởi động ứng dụng) hoặc muốn 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 làm má»›i tá»± động 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 để truy cập hồ sơ:

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Æ¡ ngưá»i dùng trong ứng dụng:

  1. Dùng adapty.addListener('onLatestProfileLoad') để lắng nghe các thay đổi cá»§a hồ sÆ¡ ngưá»i dùng — 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 lại dữ liệu hồ sÆ¡ ngưá»i dùng được cập nhật khi phương thức này được gá»i, để bạn có thể dùng nó trong toàn bá»™ ứng dụng mà không cần thá»±c hiện thêm yêu cầu mạng.
class SubscriptionManager {
  private currentProfile: any = null;
  
  constructor() {
    // Listen for profile updates
    adapty.addListener('onLatestProfileLoad', (data) => {
      this.currentProfile = data.profile;
      // Update UI, unlock content, etc.
    });
  }
  
  // Use stored profile instead of calling getProfile()
  hasAccess(): boolean {
    return this.currentProfile?.accessLevels?.['YOUR_ACCESS_LEVEL']?.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ị không có kết nối mạng.

Kết nối hồ sÆ¡ ngưá»i dùng vá»›i logic hiển thị 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 các tính năng trả phí, bạn có thể kiểm tra trá»±c tiếp hồ sÆ¡ ngưá»i dùng. Cách tiếp cận này hữu ích trong các tình huống như khi khởi động ứng dụng, khi truy cập vào các khu vá»±c 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 getAccessLevel = (profile: AdaptyProfile) => {
  return profile.accessLevels?.['YOUR_ACCESS_LEVEL'];
};

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);
  }
};

Các bước tiếp theo

Giá» 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ì hỠđã thanh toán.

ÿÿÿÿ