!(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_;
	}
	var a = function(e, n) {
			var i = {
				options: {
					timestamp: +new Date()
				},
				name: e,
				arg: n
			};
			if (window.__uniapp_x_postMessage || window.__uniapp_x_) {
				if ("postMessage" === e) {
					var a = {
						data: [n]
					};
					return window.__uniapp_x_postMessage ?
						window.__uniapp_x_postMessage(a) :
						window.__uniapp_x_.postMessage(JSON.stringify(a));
				}
				var r = {
					type: "WEB_INVOKE_APPSERVICE",
					args: {
						data: i,
						webviewIds: t
					},
				};
				window.__uniapp_x_postMessage ?
					window.__uniapp_x_postMessageToService(r) :
					window.__uniapp_x_.postMessageToService(JSON.stringify(r));
			} else if (o()) {
				if ("postMessage" === e) {
					var d = {
						data: [n]
					};
					return window.__dcloud_weex_postMessage ?
						window.__dcloud_weex_postMessage(d) :
						window.__dcloud_weex_.postMessage(JSON.stringify(d));
				}
				var s = {
					type: "WEB_INVOKE_APPSERVICE",
					args: {
						data: i,
						webviewIds: t
					},
				};
				window.__dcloud_weex_postMessage ?
					window.__dcloud_weex_postMessageToService(s) :
					window.__dcloud_weex_.postMessageToService(JSON.stringify(s));
			} else {
				if (!window.plus)
					return window.parent.postMessage({
							type: "WEB_INVOKE_APPSERVICE",
							data: i,
							pageId: ""
						},
						"*"
					);
				if (0 === t.length) {
					var w = plus.webview.currentWebview();
					if (!w) throw new Error("plus.webview.currentWebview() is undefined");
					var u = w.parent(),
						g = "";
					(g = u ? u.id : w.id), t.push(g);
				}
				if (plus.webview.postMessageToUniNView) {
					plus.webview.postMessageToUniNView({
							type: "WEB_INVOKE_APPSERVICE",
							args: {
								data: i,
								webviewIds: t
							}
						},
						"__uniapp__service"
					);
				} else {
					var v = JSON.stringify(i);
					plus.webview
						.getLaunchWebview()
						.evalJS(
							'UniPlusBridge.subscribeHandler("'
							.concat("WEB_INVOKE_APPSERVICE", '",')
							.concat(v, ",")
							.concat(JSON.stringify(t), ");")
						);
				}

				// if (plus.webview.getWebviewById("__uniapp__service")) {
				// plus.webview.postMessageToUniNView(
				//     { type: "WEB_INVOKE_APPSERVICE", args: { data: i, webviewIds: t } },
				//     "__uniapp__service"
				//   );
				// }
				// else {
				//   var v = JSON.stringify(i);
				//   plus.webview
				//     .getLaunchWebview()
				//     .evalJS(
				//       'UniPlusBridge.subscribeHandler("'
				//         .concat("WEB_INVOKE_APPSERVICE", '",')
				//         .concat(v, ",")
				//         .concat(JSON.stringify(t), ");")
				//     );
				// }
			}
		},
		r = {
			navigateTo: function() {
				var e =
					arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},
					n = e.url;
				a("navigateTo", {
					url: encodeURI(n)
				});
			},
			navigateBack: function() {
				var e =
					arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},
					n = e.delta;
				a("navigateBack", {
					delta: parseInt(n) || 1
				});
			},
			switchTab: function() {
				var e =
					arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},
					n = e.url;
				a("switchTab", {
					url: encodeURI(n)
				});
			},
			reLaunch: function() {
				var e =
					arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},
					n = e.url;
				a("reLaunch", {
					url: encodeURI(n)
				});
			},
			redirectTo: function() {
				var e =
					arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},
					n = e.url;
				a("redirectTo", {
					url: encodeURI(n)
				});
			},
			getEnv: function(e) {
				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] : {};
				a("postMessage", e.data || {});
			},
		},
		d = /uni-app/i.test(navigator.userAgent),
		s = /Html5Plus/i.test(navigator.userAgent),
		w = /complete|loaded|interactive/;
	var u =
		window.my &&
		navigator.userAgent.indexOf(
			["t", "n", "e", "i", "l", "C", "y", "a", "p", "i", "l", "A"]
			.reverse()
			.join("")
		) > -1;
	var g =
		window.swan && window.swan.webView && /swan/i.test(navigator.userAgent);
	var v =
		window.qq &&
		window.qq.miniProgram &&
		/QQ/i.test(navigator.userAgent) &&
		/miniProgram/i.test(navigator.userAgent);
	var c =
		window.tt &&
		window.tt.miniProgram &&
		/toutiaomicroapp/i.test(navigator.userAgent);
	var p =
		window.wx &&
		window.wx.miniProgram &&
		/micromessenger/i.test(navigator.userAgent) &&
		/miniProgram/i.test(navigator.userAgent);
	var _ = window.qa && /quickapp/i.test(navigator.userAgent);
	var m =
		window.ks &&
		window.ks.miniProgram &&
		/micromessenger/i.test(navigator.userAgent) &&
		/miniProgram/i.test(navigator.userAgent);
	var f =
		window.tt &&
		window.tt.miniProgram &&
		/Lark|Feishu/i.test(navigator.userAgent);
	var l =
		window.jd &&
		window.jd.miniProgram &&
		/micromessenger/i.test(navigator.userAgent) &&
		/miniProgram/i.test(navigator.userAgent);
	var E =
		window.xhs &&
		window.xhs.miniProgram &&
		/xhsminiapp/i.test(navigator.userAgent);
	for (
		var x,
			S = function() {
				(window.UniAppJSBridge = !0),
				document.dispatchEvent(
					new CustomEvent("UniAppJSBridgeReady", {
						bubbles: !0,
						cancelable: !0,
					})
				);
			},
			h = [
				function(e) {
					if (d || s)
						return (
							window.__uniapp_x_postMessage ||
							window.__uniapp_x_ ||
							window.__dcloud_weex_postMessage ||
							window.__dcloud_weex_ ?
							document.addEventListener("DOMContentLoaded", e) :
							window.plus && w.test(document.readyState) ?
							setTimeout(e, 0) :
							document.addEventListener("plusready", e),
							r
						);
				},
				function(e) {
					if (p)
						return (
							window.WeixinJSBridge && window.WeixinJSBridge.invoke ?
							setTimeout(e, 0) :
							document.addEventListener("WeixinJSBridgeReady", e),
							window.wx.miniProgram
						);
				},
				function(e) {
					if (v)
						return (
							window.QQJSBridge && window.QQJSBridge.invoke ?
							setTimeout(e, 0) :
							document.addEventListener("QQJSBridgeReady", e),
							window.qq.miniProgram
						);
				},
				function(e) {
					if (u) {
						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 (g)
						return (
							document.addEventListener("DOMContentLoaded", e),
							window.swan.webView
						);
				},
				function(e) {
					if (c)
						return (
							document.addEventListener("DOMContentLoaded", e),
							window.tt.miniProgram
						);
				},
				function(e) {
					if (_) {
						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 (m)
						return (
							window.WeixinJSBridge && window.WeixinJSBridge.invoke ?
							setTimeout(e, 0) :
							document.addEventListener("WeixinJSBridgeReady", e),
							window.ks.miniProgram
						);
				},
				function(e) {
					if (f)
						return (
							document.addEventListener("DOMContentLoaded", e),
							window.tt.miniProgram
						);
				},
				function(e) {
					if (l)
						return (
							window.JDJSBridgeReady && window.JDJSBridgeReady.invoke ?
							setTimeout(e, 0) :
							document.addEventListener("JDJSBridgeReady", e),
							window.jd.miniProgram
						);
				},
				function(e) {
					if (E) return window.xhs.miniProgram;
				},
				function(e) {
					return document.addEventListener("DOMContentLoaded", e), r;
				},
			],
			y = 0; y < h.length && !(x = h[y](S)); y++
	);
	x || (x = {});
	var M = "undefined" != typeof uni ? uni : {};
	if (!M.navigateTo)
		for (var P in x) i(x, P) && (M[P] = x[P]);
	return (M.webView = x), M;
});