Flutter未知功能插件flutter_aepedge的潜在使用
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
更多关于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),
],
);
}
}
注意事项
- 实际功能:上述代码仅为示例,实际
flutter_aepedge
插件的功能和使用方式可能完全不同。请查阅插件的官方文档或源代码以获取准确信息。 - 错误处理:在实际应用中,应添加更多的错误处理和边界情况检查。
- 平台特定代码:如果
flutter_aepedge
包含平台特定代码(如原生Android或iOS代码),请确保按照插件的文档进行必要的配置和集成。
由于flutter_aepedge
是一个未知插件,上述示例仅为假设性演示。在实际应用中,请务必参考插件的官方文档和示例代码。