Flutter未知功能插件flutter_aepedge的潜在使用

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

Flutter未知功能插件flutter_aepedge的潜在使用

flutter_aepedge 是一个用于 iOS 和 Android 的 Flutter 插件,允许在 Flutter 应用程序中集成 Adobe Experience Platform Edge SDK。通过此插件,开发者可以利用 Dart 完全启用 Edge 扩展的功能。

前置条件

Edge 网络扩展有以下依赖项,必须在安装它之前进行安装:

  • flutter_aepcore
  • flutter_aepedgeidentity

安装

安装说明可以在 这里 查找。

注意: 安装 SDK 后,别忘了运行 pod install 在你的 ios 目录下以将库链接到你的 Xcode 项目。

测试

运行测试:

flutter test

使用

有关 Edge API 的更详细信息,请参阅 文档

注册扩展与 AEPCore

注意: 需要通过原生代码初始化 SDK(在 iOS 的 AppDelegate 中和 Android 的 MainApplication 类中)。

作为初始化代码的一部分,确保在启动 SDK 之前设置 SDK 包装器类型为 Flutter

有关初始化 SDK 的更多信息,请参阅 初始化 部分。

初始化示例

iOS:

// AppDelegate.h
@import AEPCore;
@import AEPEdge;
@import AEPEdgeIdentity;
...

@implementation AppDelegate

// AppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [AEPMobileCore setWrapperType:AEPWrapperTypeFlutter];

     // TODO: 设置从数据收集 UI 配置的移动属性中的首选环境文件 ID
    NSString* ENVIRONMENT_FILE_ID = @"YOUR-APP-ID";
    
    NSArray *extensionsToRegister = @[AEPMobileEdgeIdentity.class, 
                                      AEPMobileEdge.class                                             
                                      ];

    [AEPMobileCore registerExtensions:extensionsToRegister completion:^{
    [AEPMobileCore configureWithAppId: ENVIRONMENT_FILE_ID];
    }];
    return YES;   
 } 

Android:

import com.adobe.marketing.mobile.MobileCore;
import com.adobe.marketing.mobile.Edge;
import com.adobe.marketing.mobile.edge.identity.Identity;  
...
import io.flutter.app.FlutterApplication;
...
public class MainApplication extends FlutterApplication {
  ...
  // TODO: 设置从数据收集 UI 配置的移动属性中的首选环境文件 ID
  private final String ENVIRONMENT_FILE_ID = "YOUR-APP-ID";

  @Override
  public void onCreate(){
    super.onCreate();
    ...
    MobileCore.setApplication(this);
    MobileCore.setWrapperType(WrapperType.FLUTTER);
    MobileCore.configureWithAppID(ENVIRONMENT_FILE_ID);

    MobileCore.registerExtensions(
        Arrays.asList(Edge.EXTENSION, Identity.EXTENSION),
        o -> Log.d("MainApp", "Adobe Experience Platform Mobile SDK was initialized.")
    );
  }
}

导入扩展

在您的 Flutter 应用程序中,导入 Edge 扩展如下:

import 'package:flutter_aepedge/flutter_aepedge.dart';

API 参考

extensionVersion

返回 Edge 网络扩展的 SDK 版本。

语法

static Future<String> get extensionVersion

示例

String version = await Edge.extensionVersion;

getLocationHint

获取用于向 Adobe Experience Platform Edge 网络请求的 Edge 网络位置提示。位置提示可用于构建 Adobe Experience Platform Edge 网络请求的 URL 时,提示应使用的服务器集群。

语法

static Future<String?> get locationHint

示例

String? result = null;

try {
  result = await Edge.locationHint;
} on PlatformException {
  log("Failed to get location hint");
}

resetIdentity

重置当前 AEP Edge 扩展的状态并清除与当前身份相关的先前缓存内容,如果有的话。

有关更多信息,请参阅 MobileCore.resetIdentities

setLocationHint

设置用于向 Adobe Experience Platform Edge 网络请求的 Edge 网络位置提示。传递 null 或空字符串将清除现有位置提示。Edge 网络响应可能会在必要时将位置提示覆盖为新值以管理网络流量。

警告: 设置位置提示时要谨慎。仅在 “EdgeNetwork” 范围内使用位置提示。不正确的位置提示值将导致所有 Edge 网络请求失败并返回 404 响应代码。

语法

static Future<void> setLocationHint([String? hint])

示例

Edge.setLocationHint('va6');

sendEvent

发送体验事件到 Adobe Experience Platform Edge 网络。

语法

static Future<List<EventHandle>> sendEvent(
    ExperienceEvent experienceEvent,
  )

示例

Map<String, dynamic> xdmData = {"eventType": "SampleEventType"};
Map<String, dynamic> data = {"free": "form", "data": "example"};
final ExperienceEvent experienceEvent = ExperienceEvent({
  "xdmData": xdmData,
  "data": data
});
List<EventHandle> result = await Edge.sendEvent(experienceEvent);

带有数据流 ID 覆盖的示例

Map<String, dynamic> xdmData = {"eventType": "SampleEventType"};
final ExperienceEvent experienceEvent = ExperienceEvent({
  "xdmData": xdmData,
  "datastreamIdOverride": "SampleDatastreamId"
});
List<EventHandle> result = await Edge.sendEvent(experienceEvent);

带有数据流配置覆盖的示例

Map<String, dynamic> xdmData = {"eventType": "SampleEventType"};
Map<String, dynamic> configOverrides = {
      "com_adobe_experience_platform": {
        "datasets": {
          "event": {
            "datasetId": "sampleDatasetID"
          }
        }
      }
    };
final ExperienceEvent experienceEvent = ExperienceEvent({
  "xdmData": xdmData,
  "datastreamConfigOverride": configOverrides
});
List<EventHandle> result = await Edge.sendEvent(experienceEvent);

公共类

ExperienceEvent

体验事件是要发送到 Adobe Experience Platform Edge 网络的事件。发送使用 Edge 扩展的任何体验事件都需要 XDM 数据。

您可以使用字典或方便的构造函数创建体验事件。

语法

// 从字典创建体验事件
ExperienceEvent(this.eventData) 

// 使用方便的构造函数创建体验事件
ExperienceEvent.createEventWithOverrides(final Map<String, dynamic> xdmData,
    [final Map<String, dynamic>? data, final String? datastreamIdOverride, final Map<String, dynamic>? datastreamConfigOverride])

使用示例

创建体验事件使用字典:

// 创建具有自由格式数据的体验事件:
final ExperienceEvent experienceEvent = ExperienceEvent({
  "xdmData": xdmData,
  "data": data
});

// 创建具有自由格式数据和数据流 ID 覆盖的体验事件:
final ExperienceEvent experienceEvent = ExperienceEvent({
  "xdmData": xdmData,
  "data": data,
  "datastreamIdOverride": "sampleDatastreamId"
});

// 创建具有自由格式数据和数据流配置覆盖的体验事件:
final ExperienceEvent experienceEvent = ExperienceEvent({
  "xdmData": xdmData,
  "data": data,
  "datastreamConfigOverride": configOverrides
});

创建体验事件使用方便的构造函数:

// 创建具有自由格式数据的体验事件:
final ExperienceEvent experienceEvent =
      ExperienceEvent.createEventWithOverrides(xdmData, data);

// 创建具有自由格式数据和数据流 ID 覆盖的体验事件:
final ExperienceEvent experienceEvent =
      ExperienceEvent.createEventWithOverrides(xdmData, data, "sampleDatastreamId");

// 创建具有自由格式数据和数据流配置覆盖的体验事件:
final ExperienceEvent experienceEvent =
      ExperienceEvent.createEventWithOverrides(xdmData, data, null, configOverrides);

示例

使用字典创建体验事件:

// 示例 1
// 创建具有自由格式数据的体验事件:
Map<String, dynamic> xdmData = {"eventType": "SampleEventType"};
Map<String, dynamic> data = {"free": "form", "data": "example"};
final ExperienceEvent experienceEvent = ExperienceEvent({
  "xdmData": xdmData,
  "data": data
});
// 示例 2
// 创建具有自由格式数据和数据流 ID 覆盖的体验事件:
Map<String, dynamic> xdmData = {"eventType": "SampleEventType"};
Map<String, dynamic> data = {"free": "form", "data": "example"};
final ExperienceEvent experienceEvent = ExperienceEvent({
  "xdmData": xdmData,
  "data": data,
  "datastreamIdOverride": "sampleDatastreamId"
});
// 示例 3
// 创建具有自由格式数据和数据流配置覆盖的体验事件:
Map<String, dynamic> xdmData = {"eventType": "SampleEventType"};
Map<String, dynamic> configOverrides = {
    "com_adobe_experience_platform": {
      "datasets": {
        "event": {
          "datasetId": "sampleDatasetID"
        }
      }
    }
  }

final ExperienceEvent experienceEvent = ExperienceEvent({
  "xdmData": xdmData,
  "datastreamConfigOverride": configOverrides
});

EventHandle

EventHandle 是从 Adobe Experience Platform Edge 网络发送的 XDM 体验事件的响应片段。一个事件可以收到零个、一个或多条 EdgeEventHandle 作为响应。

static const String _type = 'type';
static const String _payload = 'payload';

更多关于Flutter未知功能插件flutter_aepedge的潜在使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter未知功能插件flutter_aepedge的潜在使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter中,flutter_aepedge 作为一个未知功能插件,其详细文档和具体功能可能并不公开或广为人知。然而,基于插件名称和一般Flutter插件的工作原理,我们可以推测它可能与某种特定的边缘计算(Edge Computing)或高级加密/数据处理功能相关。

由于我们没有具体的插件文档或源代码,以下是一个假设性的示例,展示如何在一个Flutter项目中集成并使用一个假设的flutter_aepedge插件。请注意,这仅是一个示例,实际功能和使用方式可能会有很大不同。

首先,假设flutter_aepedge插件提供了以下功能:

  • 初始化边缘计算环境
  • 发送数据到边缘服务器进行处理
  • 接收处理结果

1. 添加依赖

pubspec.yaml文件中添加flutter_aepedge依赖(假设它已经在pub.dev上发布或作为本地依赖存在):

dependencies:
  flutter:
    sdk: flutter
  flutter_aepedge:
    # 如果是pub.dev上的包,使用版本号
    # version: ^x.y.z
    # 如果是本地包,使用path
    path: ../path/to/flutter_aepedge

2. 导入插件

在需要使用flutter_aepedge功能的Dart文件中导入插件:

import 'package:flutter_aepedge/flutter_aepedge.dart';

3. 初始化插件并发送数据

以下是一个假设性的代码示例,展示如何初始化插件并发送数据到边缘服务器:

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Flutter AEP Edge Demo'),
        ),
        body: Center(
          child: AEPEdgeDemo(),
        ),
      ),
    );
  }
}

class AEPEdgeDemo extends StatefulWidget {
  @override
  _AEPEdgeDemoState createState() => _AEPEdgeDemoState();
}

class _AEPEdgeDemoState extends State<AEPEdgeDemo> {
  String result = '';

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

  Future<void> _initializeAEPEdge() async {
    try {
      // 假设初始化方法名为init
      await FlutterAepEdge.init();
      
      // 发送数据到边缘服务器(假设数据为一个Map)
      Map<String, String> data = {
        'key1': 'value1',
        'key2': 'value2',
      };
      
      // 假设sendData方法返回处理结果
      var response = await FlutterAepEdge.sendData(data);
      
      // 更新UI显示结果
      setState(() {
        result = 'Response: ${response.toString()}';
      });
    } catch (e) {
      print('Error initializing AEP Edge: $e');
    }
  }

  @override
  Widget build(BuildContext context) {
    return Column(
      mainAxisAlignment: MainAxisAlignment.center,
      children: <Widget>[
        Text('Sending data to AEP Edge...'),
        Text(result),
      ],
    );
  }
}

注意事项

  1. 实际功能:上述代码仅为示例,实际flutter_aepedge插件的功能和使用方式可能完全不同。请查阅插件的官方文档或源代码以获取准确信息。
  2. 错误处理:在实际应用中,应添加更多的错误处理和边界情况检查。
  3. 平台特定代码:如果flutter_aepedge包含平台特定代码(如原生Android或iOS代码),请确保按照插件的文档进行必要的配置和集成。

由于flutter_aepedge是一个未知插件,上述示例仅为假设性演示。在实际应用中,请务必参考插件的官方文档和示例代码。

回到顶部