场景: 免邀请码推广App
本质: 将参数同步到未安装(将要安装)的App中
iOS:SFSafariViewController
SFSafariViewController可以获取到safari的cookie
需要:
- 支持iOS9以上的设备
- 不支持获取app内部浏览器的cookie,比如微信、支付宝等内置的webView。这种情况需要提示用户用Safari打卡
参考链接:【SFSafariViewController】之app与wap的cookie连接
web获取手机设备相关的信息
1). 步骤1中采集到设备信息和邀请码参数信息,收集到服务器
2). 步骤3中App第一次启动时,App内获取到设备相关信息,去匹配邀请码参数
哪些参数:
时间、
IP(使用webrtc)、
设备类型、操作系统版本(navigator.userAgent)
UDID(放弃)
IDFA(放弃)
openinstall.js获取到的参数:
screen.width
screen.height
devicePixelRatio
canvas参数
function o() {
var e = document.createElement("canvas");
if (e && "function" == typeof e.getContext)
for (var n = ["webgl", "webgl2", "experimental-webgl2", "experimental-webgl"], r = 0; r < n.length; r++) {
var i = n[r],
a = e.getContext(i);
if (a) {
var o = {};
o.context = i,
o.version = a.getParameter(a.VERSION),
o.vendor = a.getParameter(a.VENDOR),
o.sl_version = a.getParameter(a.SHADING_LANGUAGE_VERSION),
o.max_texture_size = a.getParameter(a.MAX_TEXTURE_SIZE);
var c = a.getExtension("WEBGL_debug_renderer_info");
return c && (o.vendor = a.getParameter(c.UNMASKED_VENDOR_WEBGL), o.renderer = a.getParameter(c.UNMASKED_RENDERER_WEBGL)), o
}
}
return {}
}
//获取结果:
//{context: "webgl", version: "WebGL 1.0 (OpenGL ES 2.0 Chromium)", vendor: "Intel Inc.", sl_version: "WebGL GLSL ES 1.0 (OpenGL ES GLSL ES 1.0 Chromium)", max_texture_size: 16384, …}
参考
浏览器知道你的哪些信息
知乎:如何通过web页获取手机设备ID(或其它唯一标识)?
https://juejin.im/post/5b17de31f265da6e397b70f4