flutter友盟分享_Flutter中使用友盟统计
题记
—— 执剑天涯,从你的点滴积累开始,所及之处,必精益求精,即是折腾每一天。
重要消息
可以用来加载 Html 页面,以实现 Android 中 WebView 或者 是 iOS 中的 UIWebView 中的功能。
开发插件要具备的知识:
flutter_fai_umeng 插件可实现的功能:
同时适配于 Android Ios 两个平台
实现友盟多渠道统计
实现页面的进入与退出统计
实现自定义事件的统计
实现错误信息的统计
1 开始使用
1 基本使用说明
1.1 Flutter 项目中 pubspec.xml 文件中 配置插件
git方式添加依赖
flutter_fai_umeng:
git:
url: https://github.com/zhaolongs/flutter_fai_umeng.git
ref: master
dependencies:
flutter_fai_umeng: ^0.0.2
1.2 初始化友盟
import 'package:flutter_fai_umeng/flutter_fai_umeng.dart';
///友盟的初始化
///参数一 appkey
///参数二 推送使用的pushSecret
///参数三 是否打开调试日志
FlutterFaiUmeng.uMengInit("5dcfb8f84ca357f70e000b0a",
pushSecret: "5cb4fc014c143a77fb85cb17edd807a2", logEnabled: true);
flutter_fai_umeng 插件封装了常用的初始化配制
如在Android 中
public static void uMengInit(Context context, String appkey, String pushSecret, boolean logEnabled) {
///在本方法中使用了[getChannelName]方法来获取配置在 AndroidManifest.xml中的友盟的渠道名称
///如使用 360加固打包启动了多渠道打包配制,getChannelName 方法将会获取到这个渠道名称
uMengInit(context, appkey, getChannelName(context), UMConfigure.DEVICE_TYPE_PHONE, pushSecret, logEnabled);
}
/**
* @param channel 渠道的命名规范
* 1.可以由英文字母、阿拉伯数字、下划线、中划线、空格、括号组成,可以含汉字以及其他明文字符,但是不建议使用中文命名,会出现乱码。
* 2.首尾字符不可以为空格。
* 3.不要使用纯数字作为渠道ID。
* 4.最多256个字符。
* 5.”unknown” 及其各种大小写形式,作为【友盟+】保留的字段,不可以作为渠道名。
*
* 在您查看数据时,渠道会作为一个数据细分的维度。
* @param context
* @param appkey
* @param channel
* @param deviceType
* @param pushSecret
*/
public static void uMengInit(Context context, String appkey, String channel, int deviceType, String pushSecret, boolean logEnabled) {
/**
* 设置组件化的Log开关
* 参数: boolean 默认为false,如需查看LOG设置为true
* Error(打印SDK集成或运行时错误信息)。
* Warn(打印SDK警告信息)。
* Info(打印SDK提示信息)。
* Debug(打印SDK调试信息)。
*/
UMConfigure.setLogEnabled(logEnabled);
//打开调试模式
MobclickAgent.setDebugMode( logEnabled );
//true打开 ,false为关闭
//禁止默认的页面统计方式 (一般不用设置,因为默认是进行统计的)
//MobclickAgent.openActivityDurationTrack(true);
//错误收集(默认已经配置,而且已经打开)
//MobclickAgent.setCatchUncaughtExceptions(true);
if (channel == null || channel.equals("")) {
channel = "test";
}
if (appkey == null || appkey.equals("")) {
throw new NullPointerException("appkey is null");
}
/**
* 注意: 即使您已经在AndroidManifest.xml中配置过appkey和channel值,也需要在App代码中调
* 用初始化接口(如需要使用AndroidManifest.xml中配置好的appkey和channel值,
* UMConfigure.init调用中appkey和channel参数请置为null)。
*/
UMConfigure.init(context, appkey, channel, deviceType, pushSecret);
// 选用LEGACY_AUTO页面采集模式
MobclickAgent.setPageCollectionMode(MobclickAgent.PageMode.AUTO);
// 支持在子进程中统计自定义事件
UMConfigure.setProcessEvent(true);
}
/**
* 获取渠道名
*
* @param ctx 此处习惯性的设置为activity,实际上context就可以
* @return 如果没有获取成功,那么返回值为空
*/
public static String getChannelName(Context ctx) {
if (ctx == null) {
return null;
}
String channelName = null;
try {
PackageManager packageManager = ctx.getPackageManager();
if (packageManager != null) {
//注意此处为ApplicationInfo 而不是 ActivityInfo,因为友盟设置的meta-data是在application标签中,而不是某activity标签中,所以用ApplicationInfo
ApplicationInfo applicationInfo = packageManager.getApplicationInfo(ctx.getPackageName(), PackageManager.GET_META_DATA);
if (applicationInfo != null) {
if (applicationInfo.metaData != null) {
channelName = applicationInfo.metaData.getString("UMENG_CHANNEL");
}
}
}
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return channelName;
}
在 ios 中
完整源码在这里
//日志
[UMConfigure setLogEnabled:logEnabled];
if(logEnabled){
//开发者需要显式的调用此函数,日志系统才能工作
[UMCommonLogManager setUpUMCommonLogManager];
}
//渠道设置以及友盟的初始化
[UMConfigure initWithAppkey:appkey channel:@"App Store"];
//设置为自动采集页面
[MobClick setAutoPageEnabled:NO];
1.3 页面的统计
进入页面
FlutterFaiUmeng.uMengPageStart("测试页面1");
退出页面
FlutterFaiUmeng.uMengPageEnd("测试页面1");
1.4 自定义事件的统计
FlutterFaiUmeng.uMengEventClick("login");
这里使用到的login 是在友盟管理后台设置的自定义事件名称
1.5 错误日志统计
友盟官方提到
组件化统计SDK内建JVM层错误统计。
SDK通过Thread.UncaughtExceptionHandler 捕获程序崩溃日志,并在程序下次启动时发送到服务器
所以在这里编写的 Flutter 插件是延用的友盟官方的策略,如果是开发者自己捕捉的异常,可手动上传。
FlutterFaiUmeng.uMengError("有错误了");
如有疑问可以回复
本文同步分享在 博客“早起的年轻人”(CSDN)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
flutter友盟分享_Flutter中使用友盟统计相关推荐
- flutter友盟分享_flutter中友盟插件开发使用
CSDN-专业IT技术社区-登录blog.csdn.net 开发插件要具备的知识:Flutter 与 原生 Android iOS 双向通信 Flutter通过MethodChannel实现Flut ...
- flutter友盟分享_flutter友盟统计之界面统计
2020.10.20日更新: 最近发现了一种更好的方法,就是使用RouteAware监听路由,下面是实现代码 初始化: RouteObserver需要申明为全局属性并作为参数传入MaterialApp ...
- flutter友盟分享_Flutter 集成友盟 深坑
对于友盟在Flutter上的集成,官方虽然给出了sdk(https://developer.umeng.com/sdk/flutter),但是不好使,是真的不好使,不信的可以去试试,安卓费劲调好以后, ...
- flutter 怎么拦截请求_flutter中事件传递:禁止用户交互 获取点击事件
可能有时候会需要这种需求 比如文本框可以响应点击事件但是禁止用户输入 直接粗暴的设置 TextField(enabled: false,) 这样就无法得知ontap事件了, 当然你可以用 enable ...
- flutter友盟分享_集成推送那点事-友盟/Mob-Flutter/FCM
第 97 次推文 LZ-Says 我们都曾羡慕别人,却忘了,我们也曾是别人羡慕的我们. 推荐直接拉到底阅读原文- 前言 最近的任务呐,真是让人蛋碎一地,各种被锤. 不过比较 nice 的是,推送凑齐了 ...
- 友盟分享插件 for Flutter
flutter_umeng_ushare 友盟分享插件 for Flutter flutter_umeng_ushare 说明: 在最近的实际项目中测试并使用了该库,目前当前库添加了常用的微博.qq. ...
- Flutter中使用友盟统计
题记 -- 执剑天涯,从你的点滴积累开始,所及之处,必精益求精,即是折腾每一天. 重要消息 网易云[玩转大前端]配套课程 EDU配套 教程 Flutter开发的点滴积累系列文章 可以用来加载 Html ...
- WP8 中使用HTML Agility Pack与友盟分享SDK遇到的 System.Xml.XPath加载问题
今晚在尝试使用友盟最新的社交分享SDK时,按照官方Demo,并未做多少多少改动,就是去除了对微信.脸书和推特的分享.然后运行之后就一直报错 : {System.IO.FileLoadException ...
- swift3.0友盟分享
经过(一)的讲解,大家应该可以按照友盟提供的测试账号可以集成友盟分享了,友盟目前集合了18个APP共27种分享,可以授权的有10个App:微信.QQ.新浪微博.腾讯微博.人人网.豆瓣.Facebook ...
最新文章
- 124. Leetcode 583. 两个字符串的删除操作 (动态规划- 字符串系列)
- linux mysql select_MySQL-Select语句高级应用
- MapDB的使用实战[基于Java的数据库]
- python爬取网页版QQ空间,生成词云图、柱状图、折线图(附源码)
- [C语言] 单向链表的构建以及翻转算法_图文详解(附双向链表构建代码)
- sql子查询示例_学习SQL:SQL查询示例
- 彻底卸载VS2015
- boost升压电路原理
- 智慧校园大数据平台建设和运营整体解决方案
- 看不看?这就是程序员996的真实内幕!
- 华为云学院-人人学loT学习笔记- 第五章 操作系统 轻量开源
- 【图解CDD】利用CANdelaStudio编辑诊断描述CDD文件带你入门到精通
- 导致 Scan VIP 和 Scan Listener(监听程序)出现故障的最常见的 5 个问题 (文档 ID 1602038.1)
- PCL中点云配准(非常详细,建议收藏)
- Android、IOS和Java三个平台一致的加密工具
- 移动硬盘文件丢失要如何找回呢?
- evernote国际版不可用
- CRM管理系统带给企业五大实际效益
- LabVIEW基础(1)
- java swing 图片显示_在Java Swing中显示图像