123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581 |
- OpenInstall = function(e, n, t) {
- function r(n) {
- n = n || e.location.href;
- for (var t = n.indexOf("?"), r = -1 == t ? "" : n.substring(t + 1).replace(/\+/g, "%20"), i = r.split("&"), o = {}, a = 0; a < i.length; a++) {
- var c = i[a].split("=")
- , u = decodeURIComponent(c[0] || "")
- , l = decodeURIComponent(c[1] || "");
- u && l && (void 0 === o[u] ? o[u] = l : "object" == typeof o[u] ? o[u].push(l) : o[u] = [o[u], l])
- }
- return o
- }
- function i(e) {
- var n = [];
- for (var t in e) {
- var r = e[t];
- if ("[object Array]" == Object.prototype.toString.call(r))
- for (var i = 0; i < r.length; i++)
- null != r[i] && void 0 !== r[i] && n.push(encodeURIComponent(t) + "=" + encodeURIComponent(r[i]));
- else
- null != r && void 0 !== r && n.push(encodeURIComponent(t) + "=" + encodeURIComponent(r))
- }
- return n.join("&")
- }
- function o() {
- var e = 0
- , n = arguments.length
- , t = arguments[e]
- , o = t.indexOf("?")
- , a = r(t);
- for (e = 1; e < n; e++) {
- var c = arguments[e];
- for (var u in c)
- a[u] = c[u]
- }
- return (-1 == o ? t : t.substring(0, o)) + "?" + i(a)
- }
- function a() {
- this.arr = [],
- this.run = function(e) {
- this.arr ? this.arr[this.arr.length] = e : e()
- }
- ,
- this.isReady = function() {
- return null == this.arr
- }
- ,
- this.ready = function() {
- if (null != this.arr)
- for (var e = 0; e < this.arr.length; e++)
- this.arr[e]();
- this.arr = null
- }
- }
- function c(e) {
- var n = new t
- , r = e.data
- , i = e.url
- , o = e.method;
- r && "string" != typeof r && (r = A.stringify(r)),
- "POST" != o && r && (i = i + (i.indexOf("?") > -1 ? "&" : "?") + r,
- r = null),
- n.onreadystatechange = function() {
- if (4 == n.readyState) {
- if (200 == n.status) {
- var t = n.response || n.responseText || {};
- e.success && e.success("string" == typeof t ? A.parse(t) : t)
- } else
- e.error && e.error(n, n.statusText);
- e.complete && e.complete(n)
- }
- }
- ,
- n.ontimeout = function() {
- e.error && e.error(n, n.statusText)
- }
- ;
- try {
- n.open(o, i, !1 !== e.async),
- n.withCredentials = !0;
- try {
- n.setRequestHeader && e.contentType && n.setRequestHeader("Content-Type", e.contentType),
- e.timeout && (n.timeout = e.timeout)
- } catch (e) {}
- n.send(r || null)
- } catch (e) {}
- return n
- }
- function u() {
- var e = n.createElement("canvas");
- if (e && "function" == typeof e.getContext)
- for (var t = ["webgl", "webgl2", "experimental-webgl2", "experimental-webgl"], r = 0; r < t.length; r++) {
- var i = t[r]
- , o = e.getContext(i);
- if (o) {
- var a = {};
- a.context = i,
- a.version = o.getParameter(o.VERSION),
- a.vendor = o.getParameter(o.VENDOR),
- a.sl_version = o.getParameter(o.SHADING_LANGUAGE_VERSION),
- a.max_texture_size = o.getParameter(o.MAX_TEXTURE_SIZE);
- var c = o.getExtension("WEBGL_debug_renderer_info");
- return c && (a.vendor = o.getParameter(c.UNMASKED_VENDOR_WEBGL),
- a.renderer = o.getParameter(c.UNMASKED_RENDERER_WEBGL)),
- a
- }
- }
- return {}
- }
- function l(n) {
- R(function(t) {
- var r, i, o, a;
- try {
- r = e.screen.width || "",
- i = e.screen.height || "",
- o = e.devicePixelRatio || "",
- a = u()
- } catch (e) {}
- for (var c = 0, t = t || [], l = t.length; c < l; c++)
- t[c] = C(t[c] || "");
- n({
- sw: C("" + (r || 0)),
- sh: C("" + (i || 0)),
- sp: o,
- gv: C(a.version || ""),
- gr: C(a.renderer || ""),
- li: t
- })
- })
- }
- function s(t, r, i) {
- var o = "ex"
- , a = "ecC"
- , c = "ommand"
- , u = "co"
- , l = "py"
- , s = o + a + c
- , d = u + l;
- if ("function" != typeof n[s])
- return !1;
- var f = n.createElement("div");
- f.innerHTML = t;
- for (var p = [], h = 0; h < f.children.length; h++)
- p[h] = f.children[h];
- for (var v, g, m = !1, b = r ? r + ((new Date).getTime() + (i || 1)) + "-" : null, h = 0; h < p.length; h++) {
- try {
- if (v = p[h],
- y && (v.style.position = "absolute",
- v.style.top = "-100px"),
- n.body.appendChild(v),
- "SELECT" === v.nodeName)
- v.focus();
- else if ("INPUT" === v.nodeName || "TEXTAREA" === v.nodeName) {
- b && (v.value = x(O(v.value) + b));
- var C = v.hasAttribute("readonly");
- C || v.setAttribute("readonly", ""),
- v.select(),
- v.setSelectionRange(0, v.value.length),
- C || v.removeAttribute("readonly")
- } else {
- v.hasAttribute("contenteditable") && v.focus(),
- b && v.setAttribute("class", b),
- g = e.getSelection();
- var E = n.createRange();
- E.selectNode(v),
- g.removeAllRanges(),
- g.addRange(E)
- }
- m = n[s](d)
- } catch (e) {
- m = !1
- }
- n.body.removeChild(v)
- }
- return g && g.removeAllRanges(),
- m
- }
- function d(e, t) {
- var r, i, o = !1;
- o ? (r = "hidden",
- i = "qbrowserVisibilityChange") : void 0 !== n.hidden ? (r = "hidden",
- i = "visibilitychange") : void 0 !== n.msHidden ? (r = "msHidden",
- i = "msvisibilitychange") : void 0 !== n.webkitHidden && (r = "webkitHidden",
- i = "webkitvisibilitychange");
- var a = function(e) {
- return o && e && void 0 !== e.hidden ? e.hidden : n[r]
- }
- , c = setTimeout(function() {
- null == c || a() || (e(),
- c = null)
- }, t)
- , u = function(e) {
- null != c && a(e) && (clearTimeout(c),
- c = null,
- n.removeEventListener(i, u))
- };
- i && n.addEventListener(i, u, !1)
- }
- function f(e, n, t, r) {
- "function" == typeof t && d(t, r),
- S[e](n)
- }
- var p = 2
- , h = navigator.userAgent
- , v = h.indexOf("iPhone") > -1 || h.indexOf("iPad") > -1 || h.indexOf("iPod") > -1
- , y = h.indexOf("Android") > -1
- , g = function() {
- "use strict";
- function t() {
- if (!o) {
- o = !0;
- for (var n = 0; n < i.length; n++)
- i[n].fn.call(e, i[n].ctx);
- i = []
- }
- }
- function r() {
- "complete" === n.readyState && t()
- }
- var i = []
- , o = !1
- , a = !1;
- return setTimeout(t, 3e3),
- function(c, u) {
- if (o)
- return void c(u);
- i.push({
- fn: c,
- ctx: u
- }),
- "complete" === n.readyState || "loading" !== n.readyState && !n.documentElement.doScroll ? t() : a || (n.addEventListener ? (n.addEventListener("DOMContentLoaded", t, !1),
- e.addEventListener("load", t, !1)) : (n.attachEvent("onreadystatechange", r),
- e.attachEvent("onload", t)),
- a = !0)
- }
- }()
- , m = function() {}
- , b = function() {
- function e(e, n) {
- var t, r, o, a, c = -1, u = e.length, l = [0, 0, 0, 0];
- for (t = []; ++c < u; )
- r = e[c],
- o = e[++c],
- l[0] = r >> 2,
- l[1] = (3 & r) << 4 | (o || 0) >> 4,
- c >= u ? l[2] = l[3] = 64 : (a = e[++c],
- l[2] = (15 & o) << 2 | (a || 0) >> 6,
- l[3] = c >= u ? 64 : 63 & a),
- t.push(i.charAt(l[0]), i.charAt(l[1]), i.charAt(l[2]), i.charAt(l[3]));
- var s = t.join("");
- return n ? s.replace(/=/g, "") : s
- }
- function n(e) {
- for (var n, t, r, o, a, c, u, l = [], s = 0; s < e.length; )
- o = i.indexOf(e.charAt(s++)),
- a = i.indexOf(e.charAt(s++)),
- c = i.indexOf(e.charAt(s++)),
- u = i.indexOf(e.charAt(s++)),
- n = o << 2 | a >> 4,
- t = (15 & a) << 4 | c >> 2,
- r = (3 & c) << 6 | u,
- l.push(n),
- 64 != c && l.push(t),
- 64 != u && l.push(r);
- return l
- }
- function t(e) {
- var n, t = -1, r = e.length, i = [];
- if (/^[\x00-\x7f]*$/.test(e))
- for (; ++t < r; )
- i.push(e.charCodeAt(t));
- else
- for (; ++t < r; )
- n = e.charCodeAt(t),
- n < 128 ? i.push(n) : n < 2048 ? i.push(n >> 6 | 192, 63 & n | 128) : i.push(n >> 12 | 224, n >> 6 & 63 | 128, 63 & n | 128);
- return i
- }
- function r(e) {
- var n, t, r, i = [], o = 0;
- for (n = t = r = 0; o < e.length; )
- n = e[o],
- n < 128 ? (i.push(String.fromCharCode(n)),
- o++) : n > 191 && n < 224 ? (t = e[o + 1],
- i.push(String.fromCharCode((31 & n) << 6 | 63 & t)),
- o += 2) : (t = e[o + 1],
- r = e[o + 2],
- i.push(String.fromCharCode((15 & n) << 12 | (63 & t) << 6 | 63 & r)),
- o += 3);
- return i.join("")
- }
- var i = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=";
- return [function(n) {
- if (!n)
- return "";
- for (var r = t(n), i = r.length, o = 0; o < i; o++)
- r[o] = 150 ^ r[o];
- return e(r, !0)
- }
- , function(e) {
- if (!e)
- return "";
- for (var t = n(e), i = 0, o = t.length; i < o; i++)
- t[i] = 150 ^ t[i];
- return r(t)
- }
- , function(n) {
- return n ? e(t(n)) : ""
- }
- , function(e) {
- return e ? r(n(e)) : ""
- }
- ]
- }()
- , C = b[0]
- , E = b[1]
- , x = b[2]
- , O = b[3]
- , R = function() {
- function n() {
- d.isReady() || (d.ready(),
- clearInterval(f),
- c && c.close())
- }
- function t(e) {
- n()
- }
- function r(e) {
- for (var n = e.split("."), t = 0, r = 0; r < n.length; r++)
- t = t << 8 | 255 & parseInt(n[r]);
- return t
- }
- function i(e) {
- for (var t, i, o, a, c = e.split("\r\n"), u = 0; u < c.length; u++) {
- if (t = c[u],
- i = t.split(" "),
- 0 == t.indexOf("a=candidate:") && (o = i[7]) && "host" == o && (a = i[4]))
- ;
- else if (0 == t.indexOf("a=rtcp:") && (o = i[2]) && "IP4" == o && (a = i[3]))
- ;
- else if (0 != t.indexOf("c=") || !(o = i[1]) || "IP4" != o || !(a = i[2]))
- continue;
- a && !l[a] && /[0-9]{1,3}(\.[0-9]{1,3}){3}/.test(a) && ("0.0.0.0" == a || 0 == a.indexOf("127.") || 0 == a.indexOf("169.254") || 3758096384 == (4026531840 & r(a)) || (l[a] = 1,
- s.push(a)))
- }
- s.length && n()
- }
- var o, c, u, l = {}, s = [], d = new a, f = setInterval(function() {
- c && c.localDescription && c.localDescription.sdp && u != c.localDescription.sdp && (u = c.localDescription.sdp,
- i(u))
- }, 10);
- try {
- (o = e.RTCPeerConnection || e.mozRTCPeerConnection || e.webkitRTCPeerConnection) ? (c = new o({
- iceServers: []
- },{
- optional: [{
- RtpDataChannels: !0
- }]
- }),
- c.onicecandidate = function(e) {
- e.candidate && e.candidate.candidate && i("a=" + e.candidate.candidate)
- }
- ,
- c.createDataChannel("openinstall"),
- c.createOffer(function(e) {
- try {
- c.setLocalDescription(e, function() {}, t)
- } catch (e) {
- t(e)
- }
- }, t),
- setTimeout(n, 100)) : t("not exists")
- } catch (e) {
- t(e)
- }
- return function(e) {
- d.run(function() {
- e(s.slice(0))
- })
- }
- }()
- , A = e.JSON || {
- parse: function(e) {
- return eval("(" + e + ")")
- },
- stringify: function() {
- var e = Object.prototype.toString
- , n = Array.isArray || function(n) {
- return "[object Array]" === e.call(n)
- }
- , t = {
- '"': '\\"',
- "\\": "\\\\",
- "\b": "\\b",
- "\f": "\\f",
- "\n": "\\n",
- "\r": "\\r",
- "\t": "\\t"
- }
- , r = function(e) {
- return t[e] || "\\u" + (e.charCodeAt(0) + 65536).toString(16).substr(1)
- }
- , i = /[\\"\u0000-\u001F\u2028\u2029]/g;
- return function t(o) {
- if (null == o)
- return "null";
- if ("number" == typeof o)
- return isFinite(o) ? o.toString() : "null";
- if ("boolean" == typeof o)
- return o.toString();
- if ("object" == typeof o) {
- if ("function" == typeof o.toJSON)
- return t(o.toJSON());
- if (n(o)) {
- for (var a = "[", c = 0; c < o.length; c++)
- a += (c ? ", " : "") + t(o[c]);
- return a + "]"
- }
- if ("[object Object]" === e.call(o)) {
- var u = [];
- for (var l in o)
- o.hasOwnProperty(l) && u.push(t(l) + ": " + t(o[l]));
- return "{" + u.sort().join(", ") + "}"
- }
- }
- return '"' + o.toString().replace(i, r) + '"'
- }
- }()
- }
- , S = {
- frm: function(e) {
- /*var t = n.createElement("iframe");
- t.style.display = "none",
- t.style.visibility = "hidden",
- t.src = e,
- n.body.appendChild(t)*/
- $.get(e);
- },
- loc: function(n) {
- //e.location = n
- $.get(n);
- },
- hrf: function(e) {
- var t = n.createElement("a");
- t.style.display = "none",
- t.href = e,
- n.body.appendChild(t),
- t.click()
- },
- inhrf: function(e) {
- var t = n.createElement("script");
- t.setAttribute("type", "text/javascript"),
- t.innerHTML = '(function(){var a = document.createElement("a");a.style.display = "none";a.href = "' + e.replace(/"/g, '\\"') + '";document.body.appendChild(a);a.click();})()',
- n.body.appendChild(t)
- },
- open: function(n) {
- e.open(n)
- }
- }
- , I = function(e, t) {
- function r() {
- if (y) {
- v && d(function() {
- //n.body.appendChild(v)
- }, 400);
- var e = y;
- S[b](e)
- } else
- v && n.body.appendChild(v)
- }
- function i(e, n, t) {
- p.run(function() {
- t = t || {},
- n && k && (e = !1),
- A && n && (m(),
- P = s(A, T, w));
- var i;
- n && (i = r,
- N && c({
- method: "POST",
- url: N
- })),
- x && e ? f(O, x, i, t.timeout || R) : i && i()
- })
- }
- function u(t) {
- var r = e.mask || t;
- if ("function" == typeof r && (r = r() || t),
- "string" == typeof r) {
- var i = n.createElement("div");
- i.innerHTML = r,
- r = i.children[0]
- }
- var o = function() {
- n.body.removeChild(r)
- };
- return r.addEventListener ? r.addEventListener("click", o) : r.onclick = o,
- r
- }
- if (e = e || {},
- !e.appKey)
- return void alert("appKey not specified");
- var p = new a
- , h = this;
- "function" == typeof e.onready && p.run(function() {
- e.onready.call(h)
- }),
- e.buttonId && p.run(function() {
- for (var t = e.buttonId.split(" "), r = 0; r < t.length; r++) {
- var i = n.getElementById(t[r]);
- i && i.addEventListener("click", function() {
- h.wakeupOrInstall()
- })
- }
- });
- var v, y, b, C, x, O, R, A, T, w, P, k, L, N;
- this.wakeupOrInstall = function(e) {
- i(!0, !0, e)
- }
- ,
- this.schemeWakeup = function(e) {
- i(!0, !1, e)
- }
- ,
- this.install = function(e) {
- i(!1, !0, e)
- }
- ,
- function() {
- var n = {
- channelCode: e.channelCode || I.parseUrlParams().channelCode,
- c: e._channelRedirect ? 1 : null,
- apkFileName: e.apkFileName,
- preferWakeup: e.preferWakeup,
- _pkgId: e._pkgId
- };
- l(function(r) {
- c({
- url: o(I.server + "/web/init/" + e.appKey, n, r),
- method: "POST",
- contentType: "text/plain;charset=utf-8",
- data: t,
- success: function(e) {
- g(function() {
- e.sh && (v = u(e.sh)),
- y = e.fu,
- b = e.fm,
- C = e.ft,
- x = e.su,
- O = e.sm,
- R = e.st,
- A = e.ph ? E(e.ph) : null,
- T = e.pyp ? E(e.pyp) : null,
- w = e.pye ? parseInt(E(e.pye) || "0") : 0,
- k = e.dsoi,
- L = e.channelCode,
- N = e.csu,
- p.ready()
- })
- }
- })
- })
- }()
- };
- return I.channelRedirect = function(e, n) {
- new I({
- appKey: e,
- channelCode: n,
- _channelRedirect: !0
- }).wakeupOrInstall()
- }
- ,
- I.parseUrlParams = r,
- I.docReady = g,
- I.server = "https://openinstall.io",
- I.wakeupOrInstall = function(e, n, t, r, i) {
- n ? f(e, n, function() {
- S[t](r)
- }, i) : S[t](r)
- }
- ,
- I
- }(window, document, XMLHttpRequest);
|