Flutter元数据管理插件flutter_meta_sdk_abdallah的使用

Flutter元数据管理插件flutter_meta_sdk_abdallah的使用

GitHub code size GitHub followers GitHub contributors

flutter_meta_sdk允许您将Flutter与原生Meta SDK集成。

该插件使用最新版本的SDK以支持iOS 14。目前,该插件支持iOS和Android的应用事件和深层链接。

设置

首先,如果您还没有一个应用,请先在Facebook开发者平台上创建一个应用:Facebook开发者平台

  1. 获取您的应用ID(在以下示例中称为[APP_ID])。
  2. 获取您的客户端令牌(在以下示例中称为[CLIENT_TOKEN])。 更多信息及如何获取客户端令牌,请参阅Fcaebook文档:客户端令牌

请确保将[APP_ID]替换为您的应用ID。

对于iOS

更多详细信息,请参阅Facebook SDK官方文档

阅读从iOS开始使用应用事件教程,并特别注意第5步,通过打开info.plist文件并添加以下内容:

如果您的代码中没有CFBundleURLTypes,则在</dict>元素之前添加以下内容:

&lt;key&gt;CFBundleURLTypes&lt;/key&gt;
&lt;array&gt;
  &lt;dict&gt;
  &lt;key&gt;CFBundleURLSchemes&lt;/key&gt;
  &lt;array&gt;
    &lt;string&gt;fb[APP_ID]&lt;/string&gt;
  &lt;/array&gt;
  &lt;/dict&gt;
&lt;/array&gt;
&lt;key&gt;FacebookAppID&lt;/key&gt;
&lt;string&gt;[APP_ID]&lt;/string&gt;
&lt;key&gt;FacebookClientToken&lt;/key&gt;
&lt;string&gt;[CLIENT_TOKEN]&lt;/string&gt;
&lt;key&gt;FacebookDisplayName&lt;/key&gt;
&lt;string&gt;[APP_NAME]&lt;/string&gt;

如果您的代码中已包含CFBundleURLTypes,则插入以下内容:

&lt;array&gt;
 &lt;dict&gt;
 &lt;key&gt;CFBundleURLSchemes&lt;/key&gt;
 &lt;array&gt;
   &lt;string&gt;fb[APP_ID]&lt;/string&gt;
 &lt;/array&gt;
 &lt;/dict&gt;
&lt;/array&gt;
&lt;key&gt;FacebookAppID&lt;/key&gt;
&lt;string&gt;[APP_ID]&lt;/string&gt;
&lt;key&gt;FacebookClientToken&lt;/key&gt;
&lt;string&gt;[CLIENT_TOKEN]&lt;/string&gt;
&lt;key&gt;FacebookDisplayName&lt;/key&gt;
&lt;string&gt;[APP_NAME]&lt;/string&gt;

对于Android

更多详细信息,请参阅Facebook SDK官方文档

阅读从Android开始使用应用事件教程,并特别注意第3步,在/app/res/values/strings.xml文件中添加以下内容(或相应构建版本的debugrelease文件夹):

&lt;string name="facebook_app_id"&gt;[APP_ID]&lt;/string&gt;
&lt;string name="facebook_client_token"&gt;[CLIENT_TOKEN]&lt;/string&gt;

然后,在主AndroidManifest.xml文件中,在<application>标签内添加以下内容:

&lt;application android:label="@string/app_name" ...&gt;
    ...
   	&lt;meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/&gt;
   	&lt;meta-data android:name="com.facebook.sdk.ClientToken" android:value="@string/facebook_client_token"/&gt;
    ...
&lt;/application&gt;

关于Flutter Meta SDK

请参阅Facebook应用事件的官方SDK文档:

如果您发现任何不符合官方文档的行为,请在此报告问题

参与贡献

首先,感谢您考虑参与贡献。您是一个真正的超级明星⭐,我们❤️您!

报告错误和问题

当报告问题时,请使用配置好的GitHub问题报告模板。确保尽可能客观和详细地陈述您的观察和期望,以便我们理解您的需求并能够进行排查。

讨论和想法

我们很高兴在仓库讨论区讨论和分享想法,或者您可以将问题发布到StackOverflow

如果您有任何关于如何使用Facebook SDK作为报告工具或如何使用此插件的问题,请随时发帖提问。


示例代码

示例代码:example/lib/main.dart

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

void main() => runApp(const MyApp());

class MyApp extends StatelessWidget {
  // 初始化Meta SDK
  static final metaSdk = FlutterMetaSdk();

  const MyApp({Key? key}) : super(key: key);

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Plugin example app'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              // 获取匿名ID
              FutureBuilder(
                future: metaSdk.getAnonymousId(),
                builder: (context, snapshot) {
                  final id = snapshot.data ?? '???';
                  return Text('Anonymous ID: $id');
                },
              ),
              // 点击按钮记录事件
              MaterialButton(
                child: const Text("Click me!"),
                onPressed: () {
                  metaSdk.logEvent(
                    name: 'button_clicked',
                    parameters: {
                      'button_id': 'the_clickme_button',
                    },
                  );
                },
              ),
              // 设置用户数据
              MaterialButton(
                child: const Text("Set user data"),
                onPressed: () {
                  metaSdk.setUserData(
                    email: 'opensource@oddbit.id',
                    firstName: 'Oddbit',
                    dateOfBirth: '2019-10-19',
                    city: 'Denpasar',
                    country: 'Indonesia',
                  );
                },
              ),
              // 记录添加到购物车事件
              MaterialButton(
                child: const Text("Test logAddToCart"),
                onPressed: () {
                  metaSdk.logAddToCart(
                    id: '1',
                    type: 'product',
                    price: 99.0,
                    currency: 'TRY',
                  );
                },
              ),
              // 记录购买事件
              MaterialButton(
                child: const Text("Test purchase!"),
                onPressed: () {
                  metaSdk.logPurchase(amount: 1, currency: "USD");
                },
              ),
              // 启用广告跟踪
              MaterialButton(
                child: const Text("Enable advertise tracking!"),
                onPressed: () {
                  metaSdk.setAdvertiserTracking(enabled: true);
                },
              ),
              // 禁用广告跟踪
              MaterialButton(
                child: const Text("Disabled advertise tracking!"),
                onPressed: () {
                  metaSdk.setAdvertiserTracking(enabled: false);
                },
              ),
            ],
          ),
        ),
      ),
    );
  }
}

更多关于Flutter元数据管理插件flutter_meta_sdk_abdallah的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter元数据管理插件flutter_meta_sdk_abdallah的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


flutter_meta_sdk_abdallah 是一个用于管理元数据的 Flutter 插件。它可以帮助开发者在 Flutter 应用中轻松地管理和操作元数据。以下是如何使用这个插件的基本步骤:

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 flutter_meta_sdk_abdallah 插件的依赖。

dependencies:
  flutter:
    sdk: flutter
  flutter_meta_sdk_abdallah: ^1.0.0  # 请使用最新版本

然后运行 flutter pub get 来获取依赖。

2. 导入插件

在你的 Dart 文件中导入插件:

import 'package:flutter_meta_sdk_abdallah/flutter_meta_sdk_abdallah.dart';

3. 初始化插件

在使用插件之前,你需要初始化它。通常,你可以在 main.dart 文件中进行初始化:

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化元数据插件
  await FlutterMetaSdkAbdallah.initialize();
  
  runApp(MyApp());
}

4. 使用插件管理元数据

插件提供了多种方法来管理元数据,例如添加、更新、删除和查询元数据。

添加元数据

await FlutterMetaSdkAbdallah.addMetadata(
  key: 'user_preference',
  value: 'dark_mode',
);

更新元数据

await FlutterMetaSdkAbdallah.updateMetadata(
  key: 'user_preference',
  value: 'light_mode',
);

删除元数据

await FlutterMetaSdkAbdallah.deleteMetadata(
  key: 'user_preference',
);

查询元数据

String? value = await FlutterMetaSdkAbdallah.getMetadata(
  key: 'user_preference',
);
print('User preference: $value');

5. 处理元数据事件

插件还支持监听元数据的变化。你可以通过以下方式监听元数据的变化:

FlutterMetaSdkAbdallah.onMetadataChanged.listen((Map<String, dynamic> metadata) {
  print('Metadata changed: $metadata');
});

6. 错误处理

在使用插件时,可能会遇到一些错误。你可以通过 try-catch 块来处理这些错误:

try {
  await FlutterMetaSdkAbdallah.addMetadata(
    key: 'user_preference',
    value: 'dark_mode',
  );
} catch (e) {
  print('Error adding metadata: $e');
}

7. 清理资源

在应用退出时,你可能需要清理一些资源或保存未保存的元数据:

[@override](/user/override)
void dispose() {
  FlutterMetaSdkAbdallah.dispose();
  super.dispose();
}
回到顶部