Flutter SDK集成
一、集成Flutter SDK
自动集成
1.安装
在工程 pubspec.yaml 中加入
dependencies:
umeng_common_sdk: ^1.2.32.导入
import 'package:umeng_common_sdk/umeng_common_sdk.dart';手动集成
1.在【友盟+】官网下载,选取Flutter SDK进行下载。下载地址
2.将下载的zip文件解压,并删除example文件后,将其拷入您的flutter工程中。

3.在工程中的pubspec.yaml引入如下插件
umeng_common_sdk:path: ./common_flutter_1.2.3/二、初始化Flutter SDK
Android
1.合规预初始化
您务必告知用户您选择友盟+SDK服务,请在《隐私政策》中增加如下参考条款:
“我们的产品集成友盟+SDK,友盟+SDK需要收集您的设备Mac地址、唯一设备识别码(IMEI/android ID/IDFA/OPENUDID/GUID/IP地址/SIM 卡 IMSI 信息)以提供统计分析服务,并通过地理位置校准报表数据准确性,提供基础反作弊能力。”
在宿主App的MainActivity.onCreate()函数中调用基础组件库初始化函数.
// SDK预初始化函数不会采集设备信息,也不会向友盟后台上报数据。
// preInit预初始化函数耗时极少,不会影响App首次冷启动用户体验
public static void preInit(Context context, String appkey, String channel)2.通用初始化
确保App首次冷启动时,在用户阅读您的《隐私政策》并取得用户授权之后,才调用正式初始化函数UmengCommonSdk.initCommon()初始化统计SDK,此时SDK才会真正采集设备信息并上报数据。反之,如果用户不同意《隐私政策》授权,则不能调用UmengCommonSdk.initCommon()初始化函数。
一旦App获取到《隐私政策》的用户授权,后续的App冷启动,开发者应该保证在Application.onCreate()函数中调用预初始化函数UMConfigure.preInit()。正式初始化函数UmengCommonSdk.initCommon()可以按需调用(可以在预初始化函数之后紧接着调用,也可以放到后台线程中延迟调用,但还是必须调用,不能遗漏)。
static Future<dynamic> initCommon(String androidAppkey, String iosAppkey, String channel); //初始化组件化基础库, 所有友盟业务SDK都必须调用此初始化接口。
UmengCommonSdk.initCommon('59892ebcaed179694b000104', '59892ebcaed179694b000104', 'Umeng');iOS
1.合规声明
您务必告知用户您选择友盟+SDK服务,请在《隐私政策》中增加如下参考条款:
“我们的产品集成友盟+SDK,友盟+SDK需要收集您的设备Mac地址、唯一设备识别码(IMEI/android ID/IDFA/OPENUDID/GUID/IP地址/SIM 卡 IMSI 信息)以提供统计分析服务,并通过地理位置校准报表数据准确性,提供基础反作弊能力。”
2.合规初始化
为保证您的App在集成【友盟+】统计SDK之后,能够满足工信部相关合规要求,您应确保App首次冷启动时,在用户阅读您的《隐私政策》并取得用户授权之后,才调用正式初始化函数初始化统计SDK,此时SDK才会真正采集设备信息并上报数据。反之,如果用户不同意《隐私政策》授权,则不能调用初始化函数。
/** 初始化友盟所有组件产品
@param appKey 开发者在友盟官网申请的appkey.
@param channel 渠道标识,可设置nil表示"App Store".
*/
+ (void)initWithAppkey:(NSString *)appKey channel:(NSString *)channel;一旦App获取到《隐私政策》的用户授权,后续的App冷启动,开发者应该保证调用到初始化函数。
三、功能使用
Android与iOS都适用
// 发送自定义事件(目前属性值支持字符、整数、浮点、长整数,暂不支持NULL、布尔、MAP、数组)
UmengCommonSdk.onEvent("VideoPlay", {"userID":"神秘账号", "channel":"wx", "playTime":10});
// 登录用户账号
UmengCommonSdk.onProfileSignIn("user_id");
// 登出用户账号
UmengCommonSdk.onProfileSignOff();
// 手动采集页面信息
UmengCommonSdk.setPageCollectionModeManual();
// 自动采集页面信息
UmengCommonSdk.setPageCollectionModeAuto();
// 进入页面统计(手动采集时才可设置)
UmengCommonSdk.onPageStart("viewName");
// 离开页面统计(手动采集时才可设置)
UmengCommonSdk.onPageEnd("viewName");
四、常见问题
更多flutter版本集成问题,可以参考文档《Flutter接入常见问题》。