Flutter集成Synerise平台插件synerise_flutter_sdk的使用
Flutter集成Synerise平台插件 synerise_flutter_sdk
的使用
关于 Synerise SDK 插件
Synerise 是一个用于移动应用的营销和分析平台。synerise_flutter_sdk
是其为 Flutter 应用提供的插件,允许开发者在 Flutter 项目中集成 Synerise 的功能。
文档
最新的文档可以在 Developer Guide - Mobile SDK 找到。
要求
- 访问工作区
- 一个 Profile API Key
- 配置好的开发环境 - 参考 Flutter 文档
Android 要求
- 最低 Android SDK 版本:21
- 支持的目标 SDK 版本:33
iOS 要求
- Xcode 15 和 iOS SDK 17
- iOS 9.0+ 最低部署目标
- 支持的架构:arm64 设备和 arm64, x86_64 模拟器
安装
使用 Flutter 安装
$ flutter pub add synerise_flutter_sdk
这会在你的项目的 pubspec.yaml
文件中添加如下依赖(并运行隐式的 flutter pub get
):
dependencies:
synerise_flutter_sdk: ^1.4.3
或者通过 SSH 或 HTTPS 方式安装:
SSH 方式
synerise_flutter_sdk:
git:
url: git@github.com:Synerise/synerise-flutter-sdk.git
HTTPS 方式
synerise_flutter_sdk:
git:
url: https://github.com/Synerise/synerise-flutter-sdk.git
导入 Synerise SDK
import 'package:synerise_flutter_sdk/synerise.dart';
Android Gradle & 配置
在 android/build.gradle
中添加以下内容:
repositories {
google()
mavenCentral()
maven { url 'https://pkgs.dev.azure.com/Synerise/AndroidSDK/_packaging/prod/maven/v1' }
}
在 MainActivity
中添加:
public class MainActivity extends FlutterActivity {
@Override
public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine) {
super.configureFlutterEngine(flutterEngine);
SyneriseMethodChannel.configureChannel(flutterEngine);
}
}
iOS 配置
在 iOS 部分的应用目录下执行:
pod update
初始化
首先需要初始化 Synerise Flutter SDK 并提供 Profile API Key
。
获取 Profile API Key
的步骤:
- 登录到你的 Synerise 账户。
- 访问 API Keys 页面。
- 生成一个新的
API Key
,选择Profile
观众。
初始化代码示例:
Synerise.initializer()
.withClientApiKey("YOUR_PROFILE_API_KEY")
.init();
示例应用
运行示例应用
- 在 IDE 中打开项目文件夹。
- 在终端中执行
flutter pub get
(拉取依赖)。 - 在 IDE 中选择设备或模拟器(对于 iOS 部分,需要在
example/ios
目录下执行pod update
)。 - 填写
example/lib/api_key.txt
文件中的 Profile API Key。 - 确保
example/ios/Runner/GoogleService-Info.plist
和example/android/app/google-services.json
文件已填充你的 Firebase 项目配置数据。 - 通过 IDE 运行示例应用,或者执行以下命令:
cd example
flutter run
完整示例 Demo
以下是基于官方示例的完整示例代码:
import 'package:flutter/material.dart';
import 'package:synerise_flutter_sdk/synerise.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Synerise.initializer()
.withClientApiKey("YOUR_PROFILE_API_KEY")
.withBaseUrl("https://api.snrapi.com")
.withDebugModeEnabled(true)
.init();
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Synerise Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: InitialView(),
);
}
}
class InitialView extends StatefulWidget {
@override
_InitialViewState createState() => _InitialViewState();
}
class _InitialViewState extends State<InitialView> {
@override
void initState() {
super.initState();
initializeSynerise();
}
Future<void> initializeSynerise() async {
Synerise.settings.sdk.localizable = {
LocalizableKey.localizableStringKeyOk: "OK!",
LocalizableKey.localizableStringKeyCancel: "CANCEL!"
};
Synerise.settings.sdk.appGroupIdentifier =
"group.com.synerise.sdk.sample-flutter";
Synerise.settings.sdk.keychainGroupIdentifier =
"34N2Z22TKH.FlutterKeychainGroup";
Synerise.settings.tracker.minBatchSize = 30;
Synerise.settings.tracker.autoFlushTimeout = 20.0;
Synerise.settings.tracker.eventsTriggeringFlush = ["flutter.test"];
Synerise.initializer()
.withClientApiKey("YOUR_PROFILE_API_KEY")
.withBaseUrl("https://api.snrapi.com")
.withDebugModeEnabled(true)
.init();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Synerise Flutter SDK Test'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
ElevatedButton(
onPressed: () {
final paramMap = <String, Object>{
"firstKeyCustomParam": "TEST",
"arraytest": [
{"test1": "test2"}
]
};
CustomEvent event = CustomEvent("label", "flutter.test", paramMap);
Synerise.tracker.send(event);
},
child: Text('Send Custom Event'),
),
],
),
),
);
}
}
以上示例展示了如何初始化 Synerise SDK 并发送自定义事件。你可以根据需要扩展此示例,以包含更多模块的功能测试。
更多关于Flutter集成Synerise平台插件synerise_flutter_sdk的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter集成Synerise平台插件synerise_flutter_sdk的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是一个关于如何在Flutter项目中集成和使用Synerise平台插件synerise_flutter_sdk
的代码示例。这个示例将展示如何安装插件、初始化SDK以及调用一些基本功能。
1. 添加插件依赖
首先,在你的pubspec.yaml
文件中添加synerise_flutter_sdk
依赖:
dependencies:
flutter:
sdk: flutter
synerise_flutter_sdk: ^最新版本号 # 请替换为实际可用的最新版本号
然后运行flutter pub get
来获取依赖。
2. 初始化SDK
在你的Flutter应用的入口文件(通常是main.dart
)中,初始化synerise_flutter_sdk
。
import 'package:flutter/material.dart';
import 'package:synerise_flutter_sdk/synerise_flutter_sdk.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
// 初始化SDK,通常在这里设置你的API Key或其他配置
SyneriseFlutterSdk.instance.init(
apiKey: '你的API_KEY', // 替换为你的实际API Key
baseUrl: 'https://你的API_BASE_URL', // 替换为你的实际API基础URL
// 其他初始化参数(如果有)
);
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Synerise Flutter SDK Example'),
),
body: Center(
child: MyHomePage(),
),
),
);
}
}
class MyHomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text('SDK 已初始化'),
// 其他UI组件
],
);
}
}
3. 调用SDK功能
假设synerise_flutter_sdk
提供了一个获取用户信息的方法,你可以如下调用它:
import 'package:flutter/material.dart';
import 'package:synerise_flutter_sdk/synerise_flutter_sdk.dart';
class UserInfoScreen extends StatefulWidget {
@override
_UserInfoScreenState createState() => _UserInfoScreenState();
}
class _UserInfoScreenState extends State<UserInfoScreen> {
String userInfo;
@override
void initState() {
super.initState();
_getUserInfo();
}
Future<void> _getUserInfo() async {
try {
// 假设SDK提供了一个名为getUserInfo的方法
var result = await SyneriseFlutterSdk.instance.getUserInfo();
setState(() {
userInfo = result.toString(); // 根据实际情况处理返回结果
});
} catch (error) {
print('获取用户信息失败: $error');
setState(() {
userInfo = '获取用户信息失败';
});
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('用户信息'),
),
body: Center(
child: Text(userInfo ?? '加载中...'),
),
);
}
}
4. 在应用中导航到用户信息屏幕
你可以在MyApp
的MaterialApp
中添加一个路由到UserInfoScreen
,以便在应用内导航到它:
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
SyneriseFlutterSdk.instance.init(
apiKey: '你的API_KEY',
baseUrl: 'https://你的API_BASE_URL',
);
return MaterialApp(
routes: {
'/': (context) => MyHomePage(),
'/user-info': (context) => UserInfoScreen(),
},
home: Scaffold(
appBar: AppBar(
title: Text('Synerise Flutter SDK Example'),
),
body: Center(
child: MyHomePage(),
),
floatingActionButton: FloatingActionButton(
onPressed: () => Navigator.pushNamed(context, '/user-info'),
tooltip: '查看用户信息',
child: Icon(Icons.person),
),
),
);
}
}
总结
以上代码示例展示了如何在Flutter项目中集成synerise_flutter_sdk
,初始化SDK,并调用其提供的方法。请注意,具体的SDK方法和参数可能会根据实际插件的文档有所不同,因此请参考synerise_flutter_sdk
的官方文档以获取最新和最准确的信息。