uni.webview.1.5.5.js 9.47 KB
!(function (e, n) {
  "object" == typeof exports && "undefined" != typeof module
    ? (module.exports = n())
    : "function" == typeof define && define.amd
    ? define(n)
    : ((e = e || self).uni = n());
})(this, function () {
  "use strict";
  try {
    var e = {};
    Object.defineProperty(e, "passive", {
      get: function () {
        !0;
      },
    }),
      window.addEventListener("test-passive", null, e);
  } catch (e) {}
  var n = Object.prototype.hasOwnProperty;
  function i(e, i) {
    return n.call(e, i);
  }
  var t = [];
  function o() {
    return window.__dcloud_weex_postMessage || window.__dcloud_weex_;
  }
  function a() {
    return window.__uniapp_x_postMessage || window.__uniapp_x_;
  }
  var r = function (e, n) {
      var i = { options: { timestamp: +new Date() }, name: e, arg: n };
      if (a()) {
        if ("postMessage" === e) {
          var r = { data: n };
          return window.__uniapp_x_postMessage
            ? window.__uniapp_x_postMessage(r)
            : window.__uniapp_x_.postMessage(JSON.stringify(r));
        }
        var d = {
          type: "WEB_INVOKE_APPSERVICE",
          args: { data: i, webviewIds: t },
        };
        window.__uniapp_x_postMessage
          ? window.__uniapp_x_postMessageToService(d)
          : window.__uniapp_x_.postMessageToService(JSON.stringify(d));
      } else if (o()) {
        if ("postMessage" === e) {
          var s = { data: [n] };
          return window.__dcloud_weex_postMessage
            ? window.__dcloud_weex_postMessage(s)
            : window.__dcloud_weex_.postMessage(JSON.stringify(s));
        }
        var w = {
          type: "WEB_INVOKE_APPSERVICE",
          args: { data: i, webviewIds: t },
        };
        window.__dcloud_weex_postMessage
          ? window.__dcloud_weex_postMessageToService(w)
          : window.__dcloud_weex_.postMessageToService(JSON.stringify(w));
      } else {
        if (!window.plus)
          return window.parent.postMessage(
            { type: "WEB_INVOKE_APPSERVICE", data: i, pageId: "" },
            "*"
          );
        if (0 === t.length) {
          var u = plus.webview.currentWebview();
          if (!u) throw new Error("plus.webview.currentWebview() is undefined");
          var g = u.parent(),
            v = "";
          (v = g ? g.id : u.id), t.push(v);
        }
        if (plus.webview.getWebviewById("__uniapp__service"))
          plus.webview.postMessageToUniNView(
            { type: "WEB_INVOKE_APPSERVICE", args: { data: i, webviewIds: t } },
            "__uniapp__service"
          );
        else {
          var c = JSON.stringify(i);
          plus.webview
            .getLaunchWebview()
            .evalJS(
              'UniPlusBridge.subscribeHandler("'
                .concat("WEB_INVOKE_APPSERVICE", '",')
                .concat(c, ",")
                .concat(JSON.stringify(t), ");")
            );
        }
      }
    },
    d = {
      navigateTo: function () {
        var e =
            arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},
          n = e.url;
        r("navigateTo", { url: encodeURI(n) });
      },
      navigateBack: function () {
        var e =
            arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},
          n = e.delta;
        r("navigateBack", { delta: parseInt(n) || 1 });
      },
      switchTab: function () {
        var e =
            arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},
          n = e.url;
        r("switchTab", { url: encodeURI(n) });
      },
      reLaunch: function () {
        var e =
            arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},
          n = e.url;
        r("reLaunch", { url: encodeURI(n) });
      },
      redirectTo: function () {
        var e =
            arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},
          n = e.url;
        r("redirectTo", { url: encodeURI(n) });
      },
      getEnv: function (e) {
        a()
          ? e({ uvue: !0 })
          : o()
          ? e({ nvue: !0 })
          : window.plus
          ? e({ plus: !0 })
          : e({ h5: !0 });
      },
      postMessage: function () {
        var e =
          arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
        r("postMessage", e.data || {});
      },
    },
    s = /uni-app/i.test(navigator.userAgent),
    w = /Html5Plus/i.test(navigator.userAgent),
    u = /complete|loaded|interactive/;
  var g =
    window.my &&
    navigator.userAgent.indexOf(
      ["t", "n", "e", "i", "l", "C", "y", "a", "p", "i", "l", "A"]
        .reverse()
        .join("")
    ) > -1;
  var v =
    window.swan && window.swan.webView && /swan/i.test(navigator.userAgent);
  var c =
    window.qq &&
    window.qq.miniProgram &&
    /QQ/i.test(navigator.userAgent) &&
    /miniProgram/i.test(navigator.userAgent);
  var p =
    window.tt &&
    window.tt.miniProgram &&
    /toutiaomicroapp/i.test(navigator.userAgent);
  var _ =
    window.wx &&
    window.wx.miniProgram &&
    /micromessenger/i.test(navigator.userAgent) &&
    /miniProgram/i.test(navigator.userAgent);
  var m = window.qa && /quickapp/i.test(navigator.userAgent);
  var f =
    window.ks &&
    window.ks.miniProgram &&
    /micromessenger/i.test(navigator.userAgent) &&
    /miniProgram/i.test(navigator.userAgent);
  var l =
    window.tt &&
    window.tt.miniProgram &&
    /Lark|Feishu/i.test(navigator.userAgent);
  var E =
    window.jd &&
    window.jd.miniProgram &&
    /micromessenger/i.test(navigator.userAgent) &&
    /miniProgram/i.test(navigator.userAgent);
  var x =
    window.xhs &&
    window.xhs.miniProgram &&
    /xhsminiapp/i.test(navigator.userAgent);
  for (
    var S,
      h = function () {
        (window.UniAppJSBridge = !0),
          document.dispatchEvent(
            new CustomEvent("UniAppJSBridgeReady", {
              bubbles: !0,
              cancelable: !0,
            })
          );
      },
      y = [
        function (e) {
          if (s || w)
            return (
              window.__uniapp_x_postMessage ||
              window.__uniapp_x_ ||
              window.__dcloud_weex_postMessage ||
              window.__dcloud_weex_
                ? document.addEventListener("DOMContentLoaded", e)
                : window.plus && u.test(document.readyState)
                ? setTimeout(e, 0)
                : document.addEventListener("plusready", e),
              d
            );
        },
        function (e) {
          if (_)
            return (
              window.WeixinJSBridge && window.WeixinJSBridge.invoke
                ? setTimeout(e, 0)
                : document.addEventListener("WeixinJSBridgeReady", e),
              window.wx.miniProgram
            );
        },
        function (e) {
          if (c)
            return (
              window.QQJSBridge && window.QQJSBridge.invoke
                ? setTimeout(e, 0)
                : document.addEventListener("QQJSBridgeReady", e),
              window.qq.miniProgram
            );
        },
        function (e) {
          if (g) {
            document.addEventListener("DOMContentLoaded", e);
            var n = window.my;
            return {
              navigateTo: n.navigateTo,
              navigateBack: n.navigateBack,
              switchTab: n.switchTab,
              reLaunch: n.reLaunch,
              redirectTo: n.redirectTo,
              postMessage: n.postMessage,
              getEnv: n.getEnv,
            };
          }
        },
        function (e) {
          if (v)
            return (
              document.addEventListener("DOMContentLoaded", e),
              window.swan.webView
            );
        },
        function (e) {
          if (p)
            return (
              document.addEventListener("DOMContentLoaded", e),
              window.tt.miniProgram
            );
        },
        function (e) {
          if (m) {
            window.QaJSBridge && window.QaJSBridge.invoke
              ? setTimeout(e, 0)
              : document.addEventListener("QaJSBridgeReady", e);
            var n = window.qa;
            return {
              navigateTo: n.navigateTo,
              navigateBack: n.navigateBack,
              switchTab: n.switchTab,
              reLaunch: n.reLaunch,
              redirectTo: n.redirectTo,
              postMessage: n.postMessage,
              getEnv: n.getEnv,
            };
          }
        },
        function (e) {
          if (f)
            return (
              window.WeixinJSBridge && window.WeixinJSBridge.invoke
                ? setTimeout(e, 0)
                : document.addEventListener("WeixinJSBridgeReady", e),
              window.ks.miniProgram
            );
        },
        function (e) {
          if (l)
            return (
              document.addEventListener("DOMContentLoaded", e),
              window.tt.miniProgram
            );
        },
        function (e) {
          if (E)
            return (
              window.JDJSBridgeReady && window.JDJSBridgeReady.invoke
                ? setTimeout(e, 0)
                : document.addEventListener("JDJSBridgeReady", e),
              window.jd.miniProgram
            );
        },
        function (e) {
          if (x) return window.xhs.miniProgram;
        },
        function (e) {
          return document.addEventListener("DOMContentLoaded", e), d;
        },
      ],
      M = 0;
    M < y.length && !(S = y[M](h));
    M++
  );
  S || (S = {});
  var P = "undefined" != typeof uni ? uni : {};
  if (!P.navigateTo) for (var b in S) i(S, b) && (P[b] = S[b]);
  return (P.webView = S), P;
});