Flutter集成服务插件farly_flutter_sdk的使用

Flutter集成服务插件farly_flutter_sdk的使用

Farly SDK for Flutter

安装

Pub Version (包括预发布版本)

此Flutter插件发布在 pub.dev

有关安装说明,请参阅 pub.dev

使用

完整的文档可以在 此处 访问。

你也可以检查 example 文件夹中的示例应用。

开发插件

开发

从vscode中打开 example/main.dart 并选择 Run > Start Debugging 来启动示例应用。你可以选择屏幕右下角的设备。(你需要安装flutter扩展)。

发布

首先,在 pubspec.yamlios/farly_flutter_sdk.podspec 中更新版本号。 别忘了填写 CHANGELOG.md 文件。

然后运行以下命令(你需要登录到 pub.dev):

flutter pub publish --dry-run # 检查一切是否正常
flutter pub publish # 发布新版本

许可证

MIT


示例代码

以下是示例代码,位于 这里

import 'dart:io';

import 'package:farly_flutter_sdk/feed_element.dart';
import 'package:farly_flutter_sdk/offerwall_request.dart';
import 'package:flutter/material.dart';
import 'dart:async';

import 'package:flutter/services.dart';
import 'package:farly_flutter_sdk/farly_flutter_sdk.dart';

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

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

  [@override](/user/override)
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  List<FeedElement> _feedElements = [];
  final _farlyFlutterSdkPlugin = FarlyFlutterSdk();
  final _req = OfferWallRequest(
    userId: 'userId',
    userSignupDate: DateTime.now(),
    userGender: UserGender.male,
  );

  [@override](/user/override)
  void initState() {
    super.initState();
    _farlyFlutterSdkPlugin.setup(publisherId: 'publisherId');
    if (Platform.isIOS) {
      _farlyFlutterSdkPlugin.requestAdvertisingIdAuthorization();
    }
    refreshOffers();
  }

  // 平台消息异步发送,因此我们在异步方法中初始化
  Future<void> refreshOffers() async {
    setState(() {
      _feedElements = [];
    });
    var feedElements = await _farlyFlutterSdkPlugin.getOfferwall(_req);

    // 如果小部件在异步平台消息飞行时已从树中移除,我们希望丢弃回复而不是调用
    // setState来更新我们的不存在的外观。
    if (!mounted) return;

    setState(() {
      _feedElements = feedElements;
    });
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('插件示例应用'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              ElevatedButton(
                onPressed: () {
                  _farlyFlutterSdkPlugin.showOfferwallInBrowser(_req);
                },
                child: const Text('在浏览器中显示offer墙'),
              ),
              ElevatedButton(
                onPressed: () {
                  _farlyFlutterSdkPlugin.showOfferwallInWebview(_req);
                },
                child: const Text('在webview中显示offer墙'),
              ),
              ElevatedButton(
                onPressed: () {
                  _farlyFlutterSdkPlugin
                      .getHostedOfferwallUrl(_req)
                      .then((value) {
                    Clipboard.setData(ClipboardData(text: value ?? ''));
                    print("已复制到剪贴板");
                    print(value);
                  });
                },
                child: const Text('将offer墙url复制到剪贴板'),
              ),
              ElevatedButton(
                onPressed: () {
                  refreshOffers();
                },
                child: const Text('刷新offers数组'),
              ),
              Expanded(
                child: ListView.builder(
                  itemCount: _feedElements.length,
                  itemBuilder: (context, index) {
                    final feedElement = _feedElements[index];
                    return ListTile(
                      title: Text(feedElement.name),
                      subtitle: Text(feedElement.smallDescription ?? ''),
                    );
                  },
                ),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

更多关于Flutter集成服务插件farly_flutter_sdk的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter集成服务插件farly_flutter_sdk的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter项目中集成并使用farly_flutter_sdk插件,可以按照以下步骤进行。这里我们假设你已经有一个Flutter项目,并且已经正确配置了Flutter开发环境。

1. 添加依赖

首先,你需要在你的pubspec.yaml文件中添加farly_flutter_sdk的依赖。确保你的pubspec.yaml文件包含以下内容:

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

然后,在项目的根目录下运行以下命令来获取依赖:

flutter pub get

2. 导入插件

在你的Flutter项目的Dart文件中导入farly_flutter_sdk插件。例如,在main.dart中:

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

3. 初始化SDK

在使用SDK之前,你通常需要先进行初始化。假设farly_flutter_sdk提供了一个初始化方法FarlyFlutterSdk.initialize,你可以在你的应用的入口文件(如main.dart)中进行初始化:

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

  // 初始化Farly Flutter SDK
  await FarlyFlutterSdk.initialize(
    apiKey: '你的API_KEY',  // 替换为你的实际API密钥
    // 其他初始化参数(如果有)
  );

  runApp(MyApp());
}

4. 使用SDK功能

一旦SDK初始化完成,你就可以在你的应用中调用SDK提供的功能了。例如,假设SDK提供了一个方法来获取用户信息,你可以这样使用:

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Farly Flutter SDK Demo'),
        ),
        body: Center(
          child: FutureBuilder<User>(
            future: FarlyFlutterSdk.getUserInfo(),  // 假设SDK提供了这个方法
            builder: (context, snapshot) {
              if (snapshot.connectionState == ConnectionState.done) {
                if (snapshot.hasError) {
                  return Text('Error: ${snapshot.error}');
                } else if (snapshot.hasData) {
                  User user = snapshot.data!;
                  return Text('User: ${user.name}');  // 假设User类有一个name属性
                } else {
                  return Text('No user data');
                }
              } else {
                return CircularProgressIndicator();
              }
            },
          ),
        ),
      ),
    );
  }
}

// 假设User类定义如下(根据实际情况调整)
class User {
  String? name;
  // 其他属性...

  User({this.name});

  // toJson, fromJson 方法(如果需要序列化和反序列化)...
}

注意事项

  • 确保你替换了所有示例代码中的占位符(如你的API_KEY)为实际的值。
  • 根据farly_flutter_sdk的文档,实际的方法名和参数可能会有所不同,因此请查阅最新的SDK文档以获取准确的信息。
  • 如果SDK提供了更复杂的初始化参数或功能,你可能需要调整上述代码以适应你的具体需求。

以上代码提供了一个基本的框架,展示了如何在Flutter项目中集成并使用farly_flutter_sdk插件。根据SDK的具体实现和文档,你可能需要进一步调整和扩展代码。

回到顶部