20180227416961.png

场景: 免邀请码推广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