跳转到主要内容
PRODUCT DOCUMENTS

快速找到所需文档,高效完成接入与排障

浏览产品文档与友盟 Skill,展开目录并阅读正文。

Flutter SDK集成

一、集成Flutter SDK

自动集成

1.安装

在工程 pubspec.yaml 中加入 
dependencies:
         umeng_common_sdk: ^1.2.3

2.导入

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接入常见问题》。