Flutter订阅管理与UI展示插件adapty_ui_flutter的使用

发布于 1周前 作者 ionicwang 来自 Flutter

Flutter订阅管理与UI展示插件adapty_ui_flutter的使用

Adapty UI


Adapty UI

AdaptyUI 是一个开源框架,作为 Adapty SDK 的扩展,允许你轻松地在应用中添加购买屏幕。它是 100% 开源、原生且轻量级的。

1. 获取付费墙与视图配置

付费墙可以通过以下方式获取:

import 'package:adapty_flutter/adapty_flutter.dart';

try {
  final paywall = await Adapty().getPaywall(id: paywallId);
} on AdaptyError catch (adaptyError) {
  // 处理错误
} catch (e) {
  // 处理其他错误
}

获取付费墙后,调用 AdaptyUI.createPaywallView() 方法来组装视图:

import 'package:adapty_ui_flutter/adapty_ui_flutter.dart';

try {
  final view = await AdaptyUI().createPaywallView(paywall: paywall, locale: 'en');
} on AdaptyError catch (e) {
  // 处理错误
} catch (e) {
  // 处理其他错误
}

2. 展示视觉付费墙

为了在设备屏幕上显示视觉付费墙,只需简单地调用视图对象的 .present() 方法:

try {
  await view.present();
} on AdaptyError catch (e) {
  // 处理错误
} catch (e) {
  // 处理其他错误
}

3. 完整文档和下一步

我们建议你阅读 完整文档。如果你不熟悉 Adapty,可以从 这里 开始。

贡献

  • 如果你有任何问题,可以随时打开一个 issue,我们会检查所有问题,或者发送邮件到 support@adapty.io 并告诉我们你的需求。
  • 想要建议一个功能?请联系我们或在仓库中打开一个 issue。

喜欢 AdaptyUI?

我们也很喜欢!请给我们的仓库点个星 ⭐️⭐️⭐️,让我们的开发者开心!

许可证

AdaptyUI 采用 MIT 许可证。点击这里 查看详细信息。


示例代码

example/lib/main.dart

import 'package:adapty_ui_flutter_example/purchases_observer.dart';
import 'package:flutter/cupertino.dart';

import 'paywalls_list.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({super.key});

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  @override
  void initState() {
    PurchasesObserver().initialize();

    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return const CupertinoApp(
      theme: CupertinoThemeData(
        brightness: Brightness.light,
        scaffoldBackgroundColor: CupertinoColors.systemGroupedBackground,
      ),
      home: MainView(),
    );
  }
}

class MainView extends StatelessWidget {
  const MainView({super.key});

  Future<void> _showErrorDialog(BuildContext context, String title, String message, String? details) {
    return showCupertinoDialog(
      context: context,
      builder: (ctx) => CupertinoAlertDialog(
        title: Text(title),
        content: Column(
          children: [
            Text(message),
            if (details != null) Text(details),
          ],
        ),
        actions: [
          CupertinoButton(
              child: const Text('OK'),
              onPressed: () {
                Navigator.of(context).pop();
              }),
        ],
      ),
    );
  }

  @override
  Widget build(BuildContext context) {
    return CupertinoPageScaffold(
      navigationBar: const CupertinoNavigationBar(
        middle: Text('Welcome to Adapty UI Flutter!'),
      ),
      child: PaywallsList(
        adaptyErrorCallback: (e) => _showErrorDialog(context, 'Error code ${e.code}!', e.message, e.detail),
        customErrorCallback: (e) => _showErrorDialog(context, 'Unknown error!', e.toString(), null),
      ),
    );
  }
}

解释

  1. 初始化:在 MyAppinitState 方法中调用 PurchasesObserver().initialize() 来初始化购买观察者。
  2. 主界面MainView 是应用的主界面,包含一个导航栏和一个 PaywallsList 组件。
  3. 错误处理_showErrorDialog 方法用于显示错误对话框,处理来自 PaywallsList 的错误回调。
  4. 付费墙列表PaywallsList 组件负责显示付费墙列表,并处理用户交互。

通过以上步骤,你可以轻松地在 Flutter 应用中集成 AdaptyUI,实现订阅管理和付费墙展示。


更多关于Flutter订阅管理与UI展示插件adapty_ui_flutter的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter订阅管理与UI展示插件adapty_ui_flutter的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是一个关于如何在Flutter项目中使用adapty_ui_flutter插件进行订阅管理和UI展示的示例代码。adapty_ui_flutter插件帮助开发者快速集成订阅和购买流程,同时提供用户友好的界面。

首先,确保你已经在pubspec.yaml文件中添加了adapty_ui_flutter依赖:

dependencies:
  flutter:
    sdk: flutter
  adapty_ui_flutter: ^最新版本号  # 请替换为最新的版本号

然后,运行flutter pub get来安装依赖。

接下来,按照以下步骤在你的Flutter应用中使用adapty_ui_flutter

  1. 初始化Adapty

在你的应用的入口文件(通常是main.dart)中初始化Adapty。你需要提供你的Adapty SDK密钥,这通常可以在Adapty的仪表盘上找到。

import 'package:flutter/material.dart';
import 'package:adapty_ui_flutter/adapty_ui_flutter.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  // 初始化Adapty
  await Adapty.init(
    sdkKey: '你的Adapty SDK密钥',
    listener: (AdaptyPurchaserInfo purchaserInfo) {
      // 处理购买者信息变化
      print('Purchaser info updated: $purchaserInfo');
    },
  );

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: HomeScreen(),
    );
  }
}
  1. 使用Adapty UI展示订阅选项

在你的主屏幕或任何需要展示订阅选项的地方,使用AdaptyUI组件。

import 'package:flutter/material.dart';
import 'package:adapty_ui_flutter/adapty_ui_flutter.dart';

class HomeScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Adapty UI Flutter Demo'),
      ),
      body: Center(
        child: AdaptyUI(
          // 配置Adapty UI
          productConfigs: [
            AdaptyProductConfig(
              productId: 'your_product_id_1',  // 替换为你的产品ID
              title: 'Subscription Plan 1',
              description: 'Description for Subscription Plan 1',
              price: '\$9.99',  // 显示的价格
            ),
            AdaptyProductConfig(
              productId: 'your_product_id_2',  // 替换为你的产品ID
              title: 'Subscription Plan 2',
              description: 'Description for Subscription Plan 2',
              price: '\$19.99',  // 显示的价格
            ),
          ],
          onPurchaseCompleted: (AdaptyPurchase purchase) {
            // 处理购买完成事件
            print('Purchase completed: $purchase');
          },
          onError: (error) {
            // 处理错误事件
            print('Error: $error');
          },
        ),
      ),
    );
  }
}

在这个示例中,我们创建了一个简单的Flutter应用,其中包含一个使用AdaptyUI组件的屏幕。AdaptyUI组件接受一个productConfigs列表,其中每个AdaptyProductConfig对象代表一个订阅选项。你需要替换productIdtitledescriptionprice为你的实际产品数据。

此外,我们还提供了onPurchaseCompletedonError回调来处理购买完成和错误事件。

  1. 运行应用

确保你已经正确配置了Adapty后台,并且你的产品ID是有效的。然后,运行你的Flutter应用,你应该能够看到一个包含订阅选项的用户界面。

这个示例展示了如何使用adapty_ui_flutter插件进行基本的订阅管理和UI展示。根据你的具体需求,你可能需要进一步自定义和扩展这个示例。

回到顶部