subscription_page.dart 1.57 KB
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import 'package:appframe/services/subscription_service_ios.dart';
import 'package:in_app_purchase/in_app_purchase.dart';

// subscription_page.dart
class SubscriptionPage extends StatefulWidget { 
    const SubscriptionPage({super.key});

  @override
  State<SubscriptionPage> createState() => _SubscriptionPageState();
 }

class _SubscriptionPageState extends State<SubscriptionPage> {
  final SubscriptionService _subService = SubscriptionService();
  bool _isInitialized = false;

  @override
  void initState() {
    super.initState();
    _initService();
  }

  Future<void> _initService() async {
    await _subService.initialize();
    setState(() => _isInitialized = true);
  }

  Future<void> _buy(ProductDetails product) async {
    if (!_isInitialized) return;
    try {
      await _subService.buySubscription(product);
    } catch (e) {
      // 显示出错信息
    }
  }

  @override
  Widget build(BuildContext context) {
    if (!_isInitialized) return CircularProgressIndicator();

    return ListView.builder(
      itemCount: _subService.products.length,
      itemBuilder: (context, index) {
        final product = _subService.products[index];
        return ListTile(
          title: Text(product.title),
          subtitle: Text(product.description),
          trailing: ElevatedButton(
            onPressed: () => _buy(product),
            child: Text(product.price),
          ),
        );
      },
    );
  }

  @override
  void dispose() {
    _subService.dispose();
    super.dispose();
  }
}