ÿÿ 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 Flutter 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 cá»§a há» trong hồ sÆ¡ ngưá»i dùng.

Bài viết này hướng dẫn bạ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Ỡ— 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á». Có hai lá»±a chá»n:

  • Gá»i getProfile khi 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 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 {
  final profile = await Adapty().getProfile();
  // check the access
} on AdaptyError catch (adaptyError) {
  // handle the error
} catch (e) {
}

Lắng nghe các 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. Sá»­ dụng Adapty().didUpdateProfileStream.listen() để 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 dữ liệu hồ sÆ¡ ngưá»i dùng đã cập nhật khi phương thức này được gá»i, để bạn có thể sá»­ dụng trong toàn bá»™ ứng dụng mà không cần thá»±c hiện thêm các yêu cầu mạng.
class SubscriptionManager {
  AdaptyProfile? _currentProfile;
  
  SubscriptionManager() {
    // Listen for profile updates
    Adapty().didUpdateProfileStream.listen((profile) {
      _currentProfile = profile;
      // Update UI, unlock content, etc.
    });
  }
  
  // Use stored profile instead of calling getProfile()
  bool hasAccess() {
    return _currentProfile?.accessLevels['premium']?.isActive ?? false;
  }
}

Adapty tá»± động gá»i stream listener cập nhật hồ sÆ¡ ngưá»i dùng khi ứng dụng khởi động, cung cấp dữ liệu gói đăng ký được lưu trong bá»™ nhá»› cache ngay cả khi thiết bị ngoại tuyến.

Kết nối hồ sÆ¡ ngưá»i dùng vá»›i logic paywall

Khi bạn 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 chạy ứng dụng, khi ngưá»i dùng truy cập vào các phần premium, hoặc trước khi hiển thị ná»™i dung cụ thể.

Future<bool> _checkAccessLevel() async {
  try {
    final profile = await Adapty().getProfile();
    return profile.accessLevels['YOUR_ACCESS_LEVEL']?.isActive ?? false;
  } catch (e) {
    print('Error checking access level: $e');
    return false; // Show paywall if access check fails
  }
}

Future<void> _initializePaywall() async {
  await _loadPaywall();
  
  final hasAccess = await _checkAccessLevel();
  if (!hasAccess) {
    // Show paywall if no access
  }
}

Bước tiếp theo

Sau khi đã 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.

ÿÿÿÿ