flutter集成友盟统计(不带异常上报)史上最靠谱教程!!!

任务:flutter集成友盟统计并有异常上报功能

但是友盟不支持flutter的异常上报,所以现在的策略是,先集成友盟的基础行为统计,再集成bugly的异常上报功能
下图为友盟不支持的证据:


image.png

由于友盟官网flutter集成文档写的有些太粗犷,为了避免可爱们蒙蔽,所以我决定 出一份集成教程。

前期准备: (我的操作系统是Mac)

  • 集成【友盟+】SDK之前,您首先需要到 【友盟+】官网注册账号并且添加一个ios和一个Android新应用,获得AppKey。(集成要用)

    image.png

    image.png

  • 新建flutter项目(我是新建了一个flutter项目,所以建议你们也先新建项目,跟着我的教程集成没问题了再集成到自己项目里)并且有装cocoapods

  • 安装了xcode开发工具并安装了cocoapods第三方库管理工具(不会的自行Google哈)


1.去官网下载umeng_flutter_demo.zip
image.png
2.双击解压下载的 umeng_flutter_demo,将根目录下的umeng_sdk文件夹拷贝到你自己项目的根目录下
image.png

image.png
3.在pubspec.yaml中引入插件如下:
umeng_sdk:
 path: ./umeng_sdk/
image.png
4.修改umeng_sdk/ios文件夹下umeng_sdk.podspec内容如下:
s.dependency 'UMCCommon' ,  '2.1.4'
s.dependency 'UMCAnalytics', '6.1.0'
image.png
5.找到工程main.dart文件,导入友盟sdk头文件并添加如下代码并运行项目
import 'package:umeng_sdk/umeng_sdk.dart';
class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;
  void _incrementCounter() {
    setState(() {
      // This call to setState tells the Flutter framework that something has
      // changed in this State, which causes it to rerun the build method below
      // so that the display can reflect the updated values. If we changed
      // _counter without calling setState(), then the build method would not be
      // called again, and so nothing would appear to happen.
      _counter++;
    });
    UmengSdk.onEvent('bool', {'name':'jack', 'age':18, 'male':true});
  }
image.png
6.在终端运行如下命令生成对应的iOS平台代码
flutter build ios --no-codesign

image.png

这一步会报错
image.png

platform version错误,解决方法是修改项目里的ios/Podfile文件:

# Uncomment this line to define a global platform for your project
# platform :ios, '9.0'
platform :ios, '8.0' #增加的内容

image.png

再次运行终端命令:flutter build ios --no-codesign,依然报错
image.png

解决办法是再次打开iOS目录下的Podfile,注释或删除 use_frameworks!
image.png

重新运行终端命令:flutter build ios --no-codesign即可pod成功
image.png

7.开始ios端APPID配置~

image.png

command+B编译一下报错 如图:
image.png

原因是需要给你的工程指定一个Team 解决办法如下:

image.png

再次按 command + B编译,successded~~

8.找到AppDelegate文件,加入iOS的初始化代码

由于我是swift语言,所以我需要先在桥接文件中导入头文件(Object-C语言不需要这一步哈)

#import <UMCommonLog/UMCommonLogHeaders.h>
#import <UMCommon/UMConfigure.h>
image.png

下面是Swift和OC端各自需要配置的代码,大家对号入座~:

  • swift版本:找到AppDelegate.swift文件,加入iOS的初始化代码
    UMCommonLogManager.setUp()
    UMConfigure.setLogEnabled(true)
    UMConfigure.initWithAppkey("5861e5daf5ade41326001eab", channel: "App Store")
image.png
  • oc版本:找到AppDelegate.m文件,加入iOS的初始化代码
#import "GeneratedPluginRegistrant.h"
#import <UMCommonLog/UMCommonLogHeaders.h>
#import <UMCommon/UMConfigure.h>
- (BOOL)application:(UIApplication *)application
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [UMCommonLogManager setUpUMCommonLogManager];
    [UMConfigure setLogEnabled:YES];
    [UMConfigure initWithAppkey:@"5861e5daf5ade41326001eab" channel:@"App Store"];
  [GeneratedPluginRegistrant registerWithRegistry:self];
  // Override point for customization after application launch.
  return [super application:application didFinishLaunchingWithOptions:launchOptions];
}
9.测试ios端集成是否成功:
  • 全局搜索UMengflutterpluginForAnalytics,并在[MobClick event:eventName attributes:properties];处打断点

    image.png

  • 运行xcode工程,并点击屏幕右下角按钮,如果断点走了,则代表集成成功

  • 调试成功如下:

    image.png

    ios端集成demo地址


高级功能

Android与iOS都适用

// 发送自定义事件(目前属性值支持字符、整数、浮点、长整数,暂不支持NULL、布尔、MAP、数组)
UmengSdk.onEvent("VideoPlay", {"userID":"神秘账号", "channel":"wx", "playTime":10});

// 设置用户账号
UmengSdk.onProfileSignIn("user_id");

// 取消用户账号
UmengSdk.onProfileSignOff();

// 如果需要使用页面统计,则先打开该设置
UmengSdk.setPageCollectionModeManual();

// 进入页面统计
UmengSdk.onPageStart("viewName");

// 离开页面统计
UmengSdk.onPageEnd("viewName");

// 如果不需要上述页面统计,在完成后可关闭该设置;如果没有用该功能可忽略;
UmengSdk.setPageCollectionModeAuto();

// 错误发送
UmengSdk.reportError("后台程序执行时间过长");

//页面采集
可参考 lib/umeng_navigator_observer.dart 实现页面监控跳转;

看到这里恭喜你已经成功了一半啦撒花花❀😊,不要松懈,下面我们开始集成Android端~(不好意思 Android端暂时搁浅)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343