Flutter分支管理和归因分析插件branch_sdk的使用
Flutter 分支管理和归因分析插件 branch_sdk 的使用
branch_sdk
该插件是 Branch SDK 的封装。
特性
- 基本集成。
- 安装归因。
注意:该插件目前仍处于 alpha 阶段,与 Branch SDK 的接口交互有限。但插件仍在积极开发中。提供的接口和功能已经可以用于生产环境。
开始使用
在 pubspec.yaml
文件中添加以下依赖:
dependencies:
branch_sdk: ^1.0.0-alpha.5
然后运行 flutter pub get
。
对于 iOS,你需要进入 ios
文件夹并运行 pod install
。确保你已安装 cocoapods
。
导入插件:
import 'package:branch_sdk/branch_sdk.dart';
使用方法
基本集成
根据你的平台选择,按照以下说明设置 Branch SDK。
iOS 设置
如官方文档所述,在 Info.plist
文件中添加以下内容:
<!-- App Key -->
<key>branch_key</key>
<string>key_live_or_test</string>
<!-- Register a URI Scheme -->
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>your_app_scheme</string>
</array>
</dict>
</array>
你可以从仪表板获取实时或测试密钥。如果你想同时设置测试和生产密钥,可以在 Info.plist
文件中的 branch_key
添加以下内容:
<key>branch_key</key>
<dict>
<key>live</key>
<string>live_key</string>
<key>test</key>
<string>test_key</string>
</dict>
要支持通用链接,请遵循这里的说明。
Android 设置
在 AndroidManifest.xml
文件中的 <application>
标签内添加以下内容:
<meta-data android:name="io.branch.sdk.BranchKey" android:value="key_live_abc" />
<meta-data android:name="io.branch.sdk.BranchKey.test" android:value="key_test_abc" />
<!-- Set to use Live or Test Key -->
<meta-data android:name="io.branch.sdk.TestMode" android:value="true" />
初始化
初始化 Branch SDK 可以通过以下方式完成:
import 'package:branch_sdk/branch_sdk.dart';
BranchSdk.init(debug: true); // 设置 debug 为 true 以使用测试密钥并启用日志记录。注意在 AndroidManifest.xml 中必须将 io.branch.sdk.TestMode 设置为 true 才能使 debug:true 生效。
为了保证此函数的成功执行,请确保你在应用程序的主函数中调用了以下内容:
WidgetsFlutterBinding.ensureInitialized();
验证你的集成可以通过以下方式完成:
import 'package:branch_sdk/branch_sdk.dart';
BranchSdk.init(debug: true);
BranchSdk.validateSDKIntegration(); // 记得在生产环境中删除此行。
其他信息
有关实际示例,请参见包示例部分。
示例代码
import 'dart:io';
import 'package:flutter/material.dart';
import 'dart:async';
import 'package:flutter/services.dart';
import 'package:branch_sdk/branch_sdk.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({Key? key}) : super(key: key);
[@override](/user/override)
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
String _platformVersion = 'Unknown';
[@override](/user/override)
void initState() {
super.initState();
initPlatformState();
BranchSdk.init(
debug: true,
onInit: () {
BranchSdk.validateSDKIntegration();
},
);
}
// 平台消息是异步的,所以我们在一个异步方法中进行初始化。
Future<void> initPlatformState() async {
String platformVersion;
// 平台消息可能会失败,因此我们使用 try/catch PlatformException。
// 我们还处理了消息可能返回 null 的情况。
try {
platformVersion = await BranchSdk.platformVersion ?? 'Unknown platform version';
} on PlatformException {
platformVersion = 'Failed to get platform version.';
}
// 如果小部件在异步平台消息还在飞行时被从树中移除,我们应该丢弃回复而不是调用
// setState 来更新我们的不存在的外观。
if (!mounted) return;
setState(() {
_platformVersion = platformVersion;
});
}
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('Branch IO SDK'),
),
body: Center(
child: Text('Running on: $_platformVersion\n'),
),
),
);
}
}
更多关于Flutter分支管理和归因分析插件branch_sdk的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复