用户信息及设备信息采集器

前言

是否还在为无法获取用户信息,无法收集设备信息而不停的码码码呢?现成的脚手架来了,地址:https://github.com/LiuLingyang/collector,食用方式请阅读README.md。

思路介绍

俗话说的好,最珍贵的不是代码本身,而是它的实现思路(不知道是谁说的)。总之先上图再说话。

image

依步骤解析:

1.用户访问合作站点页面;

2.页面打开时,会加载xxx.js文件;

3.xxx.js文件在客户端生成一个隐藏的iframe;

4.iframe与宿主机通讯,获取宿主机的基本信息,以及帆布指纹信息;

5.iframe将获取的信息传入自己的服务器。

*这里的xxx.js就是项目中的collector.bundle.js。

*引入iframe主要是为了解决跨应用之间的数据收集,如果你只是单应用,collector.bundle.js就已经够了(但这需要你手动去修改一些代码,兼容性做的不好)。

信息获取流程

同一用户同一设备的再次访问,我们自然不希望重新去获取这些重复的信息。第一次访问后我们会要求后台返回一个uuid给前端,而我们将其存入localStorage中。同一用户的后续访问我们只关注其变化的部分。完善的信息获取流程如下图所示:

image

*本项目只做了localStorage的判断,如果有需求,可以自行fork。

*帆布指纹和userAgent的解析都已经集成,无需做多余的工作。但应用信息的获取需要在客户端页面自行埋入节点,获取方式也可以多种多样。本项目是通过dom操作拿的(简单粗暴有木有)。

结尾

本项目目前还是一个很龊的版本,后台api也没写(本人前端小白一枚,还写不了后台,惭愧),获取的信息也很有限。

目前能获取的信息:

|

帆布指纹

|

FingerPrint

|
|

UserAgent

|

UserAgent

|
|

设备平台

|

DevicePLA

|
|

设备类型

|

Device

|
|

设备型号

|

DeviceVER

|
|

操作系统

|

OS

|
|

操作系统版本

|

OSVersion

|
| | |
|

浏览器名称

|

Browser

|
|

浏览器版本

|

BrowserVER

|
| | |
|

应用ID

|

APPID

|
|

应用名称

|

APPName

|
|

应用版本

|

APPVER

|
| | |
|

URL

|

URL

|
|

站点ID

|

SiteID

|
|

站点名称

|

SiteName

|
|

页面ID

|

PageID

|
|

页面名称

|

PageName

|
| | |
|

首次访问时间

|

CreateTime

|
|

最近访问时间

|

LastTime

|
|

本次访问时间

|

Time

|

计划后续支持微信端信息获取:

|

经度

|

Longitude

|
|

纬度

|

Latitude

|
|

微信号

| |
|

用户名

|

Username

|
|

性别

|

Sex

|
|

信号

|

NetType(WIFI,4G)

|
|

|

|

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 28,389评论 1 45
  • 前端开发面试题 <a name='preface'>前言</a> 只看问题点这里 看全部问题和答案点这里 本文由我...
    自you是敏感词阅读 4,268评论 0 3
  • 前端开发面试题 面试题目: 根据你的等级和职位的变化,入门级到专家级,广度和深度都会有所增加。 题目类型: 理论知...
    怡宝丶阅读 7,408评论 0 7
  • 请参看我github中的wiki,不定期更新。https://github.com/ivonzhang/Front...
    zhangivon阅读 12,201评论 2 19
  • 我最喜欢的一节课是数学课,因为我最喜欢有趣的数字,每次上数学课的时候杨老师总会讲的挺有趣的,主要是数学字特别的少,...
    李嘉胜阅读 1,369评论 0 0

友情链接更多精彩内容