mo-h5-bridge 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,7 +6,7 @@ function u(i) {
6
6
  }, document.head.appendChild(n);
7
7
  });
8
8
  }
9
- const a = navigator.userAgent, d = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(a), m = /Windows|Macintosh|Linux/i.test(a) && !d, s = {
9
+ const a = navigator.userAgent, d = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(a), v = /Windows|Macintosh|Linux/i.test(a) && !d, s = {
10
10
  WeChatMini: "WeChatMini",
11
11
  // 微信小程序
12
12
  AlipayMini: "AlipayMini",
@@ -29,8 +29,8 @@ const a = navigator.userAgent, d = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IE
29
29
  ["is" + s.Ios]: /iPhone|iPad|iPod/i.test(a),
30
30
  // ios
31
31
  ["is" + s.Mobile]: d,
32
- ["is" + s.Pc]: m
33
- }, v = "https://appx/web-view.min.js", o = {
32
+ ["is" + s.Pc]: v
33
+ }, y = "https://appx/web-view.min.js", o = {
34
34
  authorize: void 0,
35
35
  getLocation: void 0,
36
36
  openLocation: void 0,
@@ -43,7 +43,7 @@ const a = navigator.userAgent, d = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IE
43
43
  gotoOrderDetail: void 0,
44
44
  getAreas: void 0
45
45
  };
46
- async function y(...i) {
46
+ async function h(...i) {
47
47
  return new Promise((t, n) => {
48
48
  my.getLocation({
49
49
  ...i,
@@ -69,7 +69,7 @@ async function P(...i) {
69
69
  });
70
70
  });
71
71
  }
72
- async function h(...i) {
72
+ async function b(...i) {
73
73
  return new Promise((t, n) => {
74
74
  my.navigateTo({
75
75
  ...i,
@@ -95,16 +95,16 @@ async function L(...i) {
95
95
  });
96
96
  });
97
97
  }
98
- function b(i) {
98
+ function M(i) {
99
99
  my.switchTab({
100
100
  url: i
101
101
  });
102
102
  }
103
- function M() {
104
- o.getLocation = y, o.openLocation = P, o.navigateTo = h, o.postMessage = L, o.switchTab = b;
103
+ function T() {
104
+ o.getLocation = h, o.openLocation = P, o.navigateTo = b, o.postMessage = L, o.switchTab = M;
105
105
  }
106
106
  async function A() {
107
- await u(v), M();
107
+ await u(y), T();
108
108
  }
109
109
  const f = "https://res.wx.qq.com/open/js/jweixin-1.6.0.js";
110
110
  async function B(...i) {
@@ -146,7 +146,7 @@ async function w(i) {
146
146
  });
147
147
  });
148
148
  }
149
- async function p(i) {
149
+ async function g(i) {
150
150
  return new Promise((t, n) => {
151
151
  wx.miniProgram.navigateTo({
152
152
  ...i,
@@ -159,19 +159,22 @@ async function p(i) {
159
159
  });
160
160
  });
161
161
  }
162
- function T() {
163
- o.getLocation = B, o.openLocation = W, o.postMessage = w, o.navigateTo = p;
162
+ function p(i) {
163
+ wx.miniProgram.switchTab(i);
164
164
  }
165
165
  function C() {
166
- o.postMessage = w, o.navigateTo = p;
166
+ o.getLocation = B, o.openLocation = W, o.postMessage = w, o.navigateTo = g, o.switchTab = p;
167
+ }
168
+ function J() {
169
+ o.postMessage = w, o.navigateTo = g, o.switchTab = p;
167
170
  }
168
- async function J(i) {
171
+ async function x(i) {
169
172
  const t = location.href.split("#")[0];
170
173
  return await fetch(`${i.requestUrl}?url=${t}`).then((n) => n.json());
171
174
  }
172
175
  function V(i) {
173
176
  async function t() {
174
- const n = await J(i);
177
+ const n = await x(i);
175
178
  wx.config({
176
179
  debug: !1,
177
180
  appId: n.data.appId,
@@ -198,15 +201,15 @@ function V(i) {
198
201
  1e3 * 60 * 4
199
202
  ), Promise.resolve();
200
203
  }
201
- async function x() {
202
- await u(f), C();
204
+ async function I() {
205
+ await u(f), J();
203
206
  }
204
- async function I(i) {
207
+ async function $(i) {
205
208
  await u(f), await V(i), wx.ready(function() {
206
- T();
209
+ C();
207
210
  });
208
211
  }
209
- const g = r.isAndroid, j = (i) => {
212
+ const l = r.isAndroid, j = (i) => {
210
213
  window.WebViewJavascriptBridge ? i(window.WebViewJavascriptBridge) : document.addEventListener(
211
214
  "WebViewJavascriptBridgeReady",
212
215
  function() {
@@ -214,7 +217,7 @@ const g = r.isAndroid, j = (i) => {
214
217
  },
215
218
  !1
216
219
  );
217
- }, $ = (i) => {
220
+ }, E = (i) => {
218
221
  if (window.WebViewJavascriptBridge)
219
222
  return i(window.WebViewJavascriptBridge);
220
223
  if (window.WVJBCallbacks)
@@ -225,17 +228,17 @@ const g = r.isAndroid, j = (i) => {
225
228
  document.documentElement.removeChild(t);
226
229
  }, 0);
227
230
  };
228
- window.setupWebViewJavascriptBridge = g ? j : $;
229
- g && window.setupWebViewJavascriptBridge(function(i) {
231
+ window.setupWebViewJavascriptBridge = l ? j : E;
232
+ l && window.setupWebViewJavascriptBridge(function(i) {
230
233
  i.init(function(t, n) {
231
234
  alert(t), n("JS 返回给原生的消息内容");
232
235
  });
233
236
  });
234
- async function E() {
237
+ async function R() {
235
238
  window.setupWebViewJavascriptBridge((i) => {
236
239
  Object.keys(o).forEach((t) => {
237
240
  o[t] = function(n) {
238
- return new Promise((e, l) => {
241
+ return new Promise((e, m) => {
239
242
  i.callHandler(
240
243
  "sendToNative",
241
244
  // 传递给原生的参数
@@ -244,7 +247,7 @@ async function E() {
244
247
  value: n
245
248
  },
246
249
  (c) => {
247
- console.log("name2 fromNativeParams", c), c.type === "success" ? e(c.value) : l(c.value);
250
+ console.log("name2 fromNativeParams", c), c.type === "success" ? e(c.value) : m(c.value);
248
251
  }
249
252
  );
250
253
  });
@@ -252,11 +255,11 @@ async function E() {
252
255
  });
253
256
  });
254
257
  }
255
- async function R(i) {
256
- r.isAlipayMini ? await A() : r.isWeChatMini ? !i || !i.token ? await x() : await I(i) : await E();
258
+ async function _(i) {
259
+ r.isAlipayMini ? await A() : r.isWeChatMini ? !i || !i.token ? await I() : await $(i) : await R();
257
260
  }
258
261
  export {
259
262
  o as Bridge,
260
- R as initBridge
263
+ _ as initBridge
261
264
  };
262
265
  //# sourceMappingURL=mo-h5-bridge.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mo-h5-bridge.js","sources":["../node_modules/.pnpm/mo-front-end-util@0.0.12_postcss@8.4.38_rollup@4.18.0_typescript@5.4.5_vite@5.2.12_sass@1.77.4_terser@5.31.1_/node_modules/mo-front-end-util/dist/mo-front-end-util.js","../package/sdk/alipay/const.ts","../package/const.ts","../package/sdk/alipay/get-location/index.ts","../package/sdk/alipay/open-location/index.ts","../package/sdk/alipay/navigate-to/index.ts","../package/sdk/alipay/post-message/index.ts","../package/sdk/alipay/switch-tab/index.ts","../package/sdk/alipay/register.ts","../package/sdk/alipay/index.ts","../package/sdk/we-chat/const.ts","../package/sdk/we-chat/get-location/index.ts","../package/sdk/we-chat/open-location/index.ts","../package/sdk/we-chat/post-message/index.ts","../package/sdk/we-chat/navigate-to/index.ts","../package/sdk/we-chat/register.ts","../package/sdk/we-chat/index.ts","../package/sdk/mobile/depend.ts","../package/sdk/mobile/index.ts","../package/main.ts"],"sourcesContent":["const a = /^1[3456789]\\d{9}$/, c = /[\\(\\)\\`\\~\\!\\@\\#\\$\\%\\^\\&\\*\\-\\+\\=\\_\\|\\{\\}\\[\\]\\:\\;\\'\\<\\>\\,\\.\\?\\\\]/, r = /^(?=.*\\d)(?=.*[a-zA-Z])(?=.*[`~!@#$%^&*()-+=_|{}\\[\\]:;'<>,.?/])[\\da-zA-Z`~!@#$%^&*()-+=_|{}\\[\\]:;'<>,.?/]{12,30}$/;\nfunction l(o) {\n return new Promise((t) => {\n const i = document.createElement(\"script\");\n i.type = \"text/javascript\", i.src = o, i.onload = function() {\n t();\n }, document.head.appendChild(i);\n });\n}\nfunction p(o, t) {\n const i = document.createElement(\"a\");\n i.href = URL.createObjectURL(o), i.target = \"_blank\", i.download = t, document.body.appendChild(i), i.click(), URL.revokeObjectURL(i.href), document.body.removeChild(i);\n}\nconst n = navigator.userAgent, d = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(n), s = /Windows|Macintosh|Linux/i.test(n) && !d, e = {\n WeChatMini: \"WeChatMini\",\n // 微信小程序\n AlipayMini: \"AlipayMini\",\n // 支付宝小程序\n Android: \"Android\",\n // 安卓端\n Ios: \"Ios\",\n // ios端\n Mobile: \"Mobile\",\n // 移动端\n Pc: \"Pc\"\n // pc端\n}, h = {\n [\"is\" + e.WeChatMini]: /miniProgram/i.test(n),\n // 微信小程序\n [\"is\" + e.AlipayMini]: /AlipayClient.*miniProgram/i.test(n),\n // 支付宝小程序\n [\"is\" + e.Android]: /Android/i.test(n),\n // andorid\n [\"is\" + e.Ios]: /iPhone|iPad|iPod/i.test(n),\n // ios\n [\"is\" + e.Mobile]: d,\n [\"is\" + e.Pc]: s\n};\nexport {\n e as ALL_ENV,\n h as RUN_ENV,\n p as downloadByBlob,\n l as downloadCdn,\n r as passwordReg,\n a as phoneReg,\n c as specialCharReg\n};\n//# sourceMappingURL=mo-front-end-util.js.map\n","// 支付宝sdk下载地址\r\nexport const URL_PATH = 'https://appx/web-view.min.js';\r\n","// 桥接对象,供外部使用\r\n\r\nexport const Bridge: {\r\n // 范围:wechat\r\n // 功能:请求授权\r\n // 参数:wechat\r\n authorize: any;\r\n // 范围:wechat\r\n // 功能:获取位置 参数:\r\n // wechat、\r\n getLocation: any;\r\n // 范围:wechat\r\n // 功能:打开地图\r\n // 参数:wechat\r\n openLocation: any;\r\n // 范围:wechat\r\n // 功能:开启设置\r\n // 参数:wechat\r\n openSetting: any;\r\n openURL: any;\r\n // 范围:wechat(不能跳转tab页)、客户端\r\n // 功能:跳转到某一页\r\n // 参数:wechat\r\n navigateTo: any;\r\n // 范围:wechat\r\n // 功能:发送消息(wechat小程序中只能在h5退出项目时才能触发)\r\n // 参数:wechat\r\n postMessage: any;\r\n // 范围:android、ios\r\n // 功能:获取token\r\n // 参数:无\r\n getToken: any;\r\n // 范围:wechat\r\n // 功能:跳转tab页\r\n // 参数:wechat\r\n switchTab: any;\r\n // 范围:客户端\r\n // 功能:进入订单详情页,库存页面,点击订单进入详情页\r\n // 参数:无\r\n gotoOrderDetail: any;\r\n // 范围:客户端\r\n // 功能:获取库存页面的区域\r\n // 参数:无\r\n getAreas: any;\r\n // 范围:客户端\r\n // 功能:返回上一级\r\n // 参数:无\r\n goBack: any;\r\n} = {\r\n authorize: undefined,\r\n getLocation: undefined,\r\n openLocation: undefined,\r\n openSetting: undefined,\r\n openURL: undefined,\r\n navigateTo: undefined,\r\n postMessage: undefined,\r\n getToken: undefined,\r\n switchTab: undefined,\r\n gotoOrderDetail: undefined,\r\n getAreas: undefined\r\n};\r\n","export async function getLocation(...args: any[]) {\r\n return new Promise((resolve, reject) => {\r\n my.getLocation({\r\n ...args,\r\n success: function (res: unknown) {\r\n resolve(res);\r\n },\r\n fail: function (err: unknown) {\r\n reject(err);\r\n }\r\n });\r\n });\r\n}\r\n","export async function openLocation(...args: any[]) {\r\n return new Promise((resolve, reject) => {\r\n my.openLocation({\r\n ...args,\r\n success: function (res: unknown) {\r\n resolve(res);\r\n },\r\n fail: function (err: unknown) {\r\n reject(err);\r\n }\r\n });\r\n });\r\n}\r\n","export async function navigateTo(...args: any[]) {\r\n return new Promise((resolve, reject) => {\r\n my.navigateTo({\r\n ...args,\r\n success: function (res: unknown) {\r\n resolve(res);\r\n },\r\n fail: function (err: unknown) {\r\n reject(err);\r\n }\r\n });\r\n });\r\n}\r\n","export async function postMessage(...args: any[]) {\r\n return new Promise((resolve, reject) => {\r\n my.postMessage({\r\n ...args,\r\n success: function (res: unknown) {\r\n resolve(res);\r\n },\r\n fail: function (err: unknown) {\r\n reject(err);\r\n }\r\n });\r\n });\r\n}\r\n","export function switchTab(url: string) {\r\n my.switchTab({\r\n url\r\n });\r\n}\r\n","import { Bridge } from '../../const';\r\n\r\nimport { getLocation } from './get-location';\r\nimport { openLocation } from './open-location';\r\nimport { navigateTo } from './navigate-to';\r\nimport { postMessage } from './post-message';\r\nimport { switchTab } from './switch-tab';\r\n\r\n// 在这里添加具体的需要暴露的方法名\r\nexport function register() {\r\n Bridge.getLocation = getLocation;\r\n Bridge.openLocation = openLocation;\r\n Bridge.navigateTo = navigateTo;\r\n Bridge.postMessage = postMessage;\r\n Bridge.switchTab = switchTab;\r\n}\r\n","import { downloadCdn } from 'mo-front-end-util';\r\nimport { URL_PATH } from './const';\r\nimport { register } from './register';\r\n\r\nexport async function init() {\r\n await downloadCdn(URL_PATH);\r\n\r\n register();\r\n}\r\n","// 支付宝sdk下载地址\r\nexport const URL_PATH = 'https://res.wx.qq.com/open/js/jweixin-1.6.0.js';\r\n","export async function getLocation(...args: any) {\r\n return new Promise((resolve, reject) => {\r\n wx.getLocation({\r\n ...args,\r\n success: function (res: unknown) {\r\n resolve(res);\r\n },\r\n fail: function (err: unknown) {\r\n reject(err);\r\n }\r\n });\r\n });\r\n}\r\n","export async function openLocation(...args: any) {\r\n return new Promise((resolve, reject) => {\r\n wx.openLocation({\r\n ...args,\r\n success: function (res: unknown) {\r\n resolve(res);\r\n },\r\n fail: function (err: unknown) {\r\n reject(err);\r\n }\r\n });\r\n });\r\n}\r\n","export async function postMessage(args: any) {\r\n return new Promise((resolve, reject) => {\r\n wx.miniProgram.postMessage({\r\n ...args,\r\n success: function (res: unknown) {\r\n resolve(res);\r\n },\r\n fail: function (err: unknown) {\r\n reject(err);\r\n }\r\n });\r\n });\r\n}\r\n","export async function navigateTo(args: any) {\r\n return new Promise((resolve, reject) => {\r\n wx.miniProgram.navigateTo({\r\n ...args,\r\n success: function (res: unknown) {\r\n resolve(res);\r\n },\r\n fail: function (err: unknown) {\r\n reject(err);\r\n }\r\n });\r\n });\r\n}\r\n","import { Bridge } from '../../const';\r\n\r\nimport { getLocation } from './get-location';\r\nimport { openLocation } from './open-location';\r\nimport { postMessage } from './post-message';\r\nimport { navigateTo } from './navigate-to';\r\n\r\nexport function register() {\r\n Bridge.getLocation = getLocation;\r\n Bridge.openLocation = openLocation;\r\n Bridge.postMessage = postMessage;\r\n Bridge.navigateTo = navigateTo;\r\n}\r\n\r\nexport function notLoginRegister() {\r\n Bridge.postMessage = postMessage;\r\n Bridge.navigateTo = navigateTo;\r\n}\r\n","import { downloadCdn } from 'mo-front-end-util';\r\nimport { URL_PATH } from './const';\r\nimport { register, notLoginRegister } from './register';\r\n\r\nasync function getConfig(arg: InitWxConfigType) {\r\n const urlParam = location.href.split('#')[0];\r\n\r\n return await fetch(`${arg.requestUrl}?url=${urlParam}`).then((response) => {\r\n return response.json();\r\n });\r\n\r\n // return await fetch(`${arg.requestUrl}?url=${urlParam}`, {\r\n // headers: {\r\n // token: arg.token,\r\n // 'Content-Type': 'application/json'\r\n // }\r\n // }).then((response) => {\r\n // return response.json();\r\n // });\r\n}\r\n\r\nfunction setConfig(arg: InitWxConfigType) {\r\n async function initConfig() {\r\n const configData = await getConfig(arg);\r\n wx.config({\r\n debug: false,\r\n appId: configData.data.appId,\r\n timestamp: configData.data.timestamp,\r\n nonceStr: configData.data.nonceStr,\r\n signature: configData.data.signature,\r\n jsApiList: [\r\n // 获取当前的地理位置、速度:\r\n // 微信小程序与支付宝同名\r\n 'getLocation',\r\n // 使用微信内置地图查看位置:\r\n // 微信小程序与支付宝同名\r\n 'openLocation',\r\n 'startRecord',\r\n 'chooseImage',\r\n 'scanQRCode'\r\n ]\r\n });\r\n }\r\n\r\n initConfig();\r\n\r\n // // wx.error只需要注册一次,每次失败间隔会重新初始化\r\n // wx.error(() => {\r\n // setTimeout(() => {\r\n // initConfig();\r\n // }, 1000 * 3);\r\n // });\r\n\r\n // 签名5min会过期,所以需要定时更新签名\r\n setInterval(\r\n async (res) => {\r\n console.log('js-sdk 重新初始化', res);\r\n initConfig();\r\n },\r\n 1000 * 60 * 4\r\n );\r\n\r\n return Promise.resolve();\r\n}\r\n\r\nasync function wcChatInitNotLogin() {\r\n await downloadCdn(URL_PATH);\r\n\r\n notLoginRegister();\r\n}\r\n\r\nexport async function init(arg: InitWxConfigType) {\r\n await downloadCdn(URL_PATH);\r\n await setConfig(arg);\r\n\r\n wx.ready(function () {\r\n register();\r\n });\r\n}\r\n\r\nexport { wcChatInitNotLogin };\r\n","/**\r\n * 使用 JSBridge 总结:\r\n * 1、跟 IOS 交互的时候,只需要且必须注册 iosFunction 方法即可,\r\n * 不能在 setupWebViewJavascriptBridge 中执行 bridge.init 方法,否则 IOS 无法调用到 H5 的注册函数;\r\n * 2、与安卓进行交互的时候\r\n * ①、使用 iosFunction,就可以实现 H5 调用 安卓的注册函数,但是安卓无法调用 H5 的注册函数,\r\n * 并且 H5 调用安卓成功后的回调函数也无法执行\r\n * ②、使用 androidFunction 并且要在 setupWebViewJavascriptBridge 中执行 bridge.init 方法,\r\n * 安卓才可以正常调用 H5 的回调函数,并且 H5 调用安卓成功后的回调函数也可以正常执行了\r\n */\r\n\r\n// @ts-nocheck\r\n\r\nimport { RUN_ENV } from 'mo-front-end-util';\r\n\r\nconst isAndroid = RUN_ENV.isAndroid;\r\n\r\n/**\r\n * Android 与安卓交互时:\r\n * 1、不调用这个函数安卓无法调用 H5 注册的事件函数;\r\n * 2、但是 H5 可以正常调用安卓注册的事件函数;\r\n * 3、还必须在 setupWebViewJavascriptBridge 中执行 bridge.init 方法,否则:\r\n * ①、安卓依然无法调用 H5 注册的事件函数\r\n * ①、H5 正常调用安卓事件函数后的回调函数无法正常执行\r\n *\r\n * @param {*} callback\r\n */\r\nconst androidFunction = (callback) => {\r\n if (window.WebViewJavascriptBridge) {\r\n callback(window.WebViewJavascriptBridge);\r\n } else {\r\n document.addEventListener(\r\n 'WebViewJavascriptBridgeReady',\r\n function () {\r\n callback(window.WebViewJavascriptBridge);\r\n },\r\n false\r\n );\r\n }\r\n};\r\n\r\n/**\r\n * IOS 与 IOS 交互时,使用这个函数即可,别的操作都不需要执行\r\n * @param {*} callback\r\n */\r\nconst iosFunction = (callback) => {\r\n if (window.WebViewJavascriptBridge) {\r\n return callback(window.WebViewJavascriptBridge);\r\n }\r\n if (window.WVJBCallbacks) {\r\n return window.WVJBCallbacks.push(callback);\r\n }\r\n window.WVJBCallbacks = [callback];\r\n const WVJBIframe = document.createElement('iframe');\r\n WVJBIframe.style.display = 'none';\r\n WVJBIframe.src = 'wvjbscheme://__BRIDGE_LOADED__';\r\n document.documentElement.appendChild(WVJBIframe);\r\n setTimeout(function () {\r\n document.documentElement.removeChild(WVJBIframe);\r\n }, 0);\r\n};\r\n\r\n/**\r\n * 注册 setupWebViewJavascriptBridge 方法\r\n * 之所以不将上面两个方法融合成一个方法,是因为放在一起,那么就只有 iosFunction 中相关的方法体生效\r\n */\r\nwindow.setupWebViewJavascriptBridge = isAndroid ? androidFunction : iosFunction;\r\n\r\n/**\r\n * 这里如果不做判断是不是安卓,而是直接就执行下面的方法,就会导致\r\n * 1、IOS 无法调用 H5 这边注册的事件函数\r\n * 2、H5 可以正常调用 IOS 这边的事件函数,并且 H5 的回调函数可以正常执行\r\n */\r\nif (isAndroid) {\r\n /**\r\n * 与安卓交互时,不调用这个函数会导致:\r\n * 1、H5 可以正常调用 安卓这边的事件函数,但是无法再调用到 H5 的回调函数\r\n *\r\n * 前提 setupWebViewJavascriptBridge 这个函数使用的是 androidFunction 这个,否则还是会导致上面 1 的现象出现\r\n */\r\n window.setupWebViewJavascriptBridge(function (bridge) {\r\n // 注册 H5 界面的默认接收函数(与安卓交互时,不注册这个事件无法接收回调函数)\r\n bridge.init(function (msg, responseCallback) {\r\n alert(msg);\r\n responseCallback('JS 返回给原生的消息内容');\r\n });\r\n });\r\n}\r\n","import './depend';\r\nimport { Bridge } from '../../const';\r\n\r\nexport async function init() {\r\n // @ts-ignore\r\n window.setupWebViewJavascriptBridge((bridge) => {\r\n Object.keys(Bridge).forEach((name) => {\r\n Bridge[name as keyof typeof Bridge] = function (toNativeParams: unknown) {\r\n return new Promise((resolve, reject) => {\r\n // 调用原生方法\r\n bridge.callHandler(\r\n 'sendToNative',\r\n // 传递给原生的参数\r\n {\r\n type: name,\r\n value: toNativeParams\r\n },\r\n (data: { type: string; value: any }) => {\r\n console.log('name2 fromNativeParams', data);\r\n // 原生返回回来的数据\r\n if (data.type === 'success') {\r\n resolve(data.value);\r\n } else {\r\n reject(data.value);\r\n }\r\n }\r\n );\r\n });\r\n };\r\n });\r\n });\r\n}\r\n","import { RUN_ENV } from 'mo-front-end-util';\r\nimport { init as alipayInit } from './sdk/alipay/index';\r\nimport { init as weChatInit, wcChatInitNotLogin } from './sdk/we-chat/index';\r\nimport { init as mobileInit } from './sdk/mobile/index';\r\nimport { Bridge } from './const';\r\n\r\nasync function initBridge(arg: void | InitWxConfigType) {\r\n if (RUN_ENV.isAlipayMini) {\r\n await alipayInit();\r\n } else if (RUN_ENV.isWeChatMini) {\r\n if (!arg || !arg.token) {\r\n await wcChatInitNotLogin();\r\n } else {\r\n await weChatInit(arg as InitWxConfigType);\r\n }\r\n } else {\r\n await mobileInit();\r\n }\r\n}\r\n\r\nexport { Bridge, initBridge };\r\n"],"names":["l","o","i","n","s","e","h","URL_PATH","Bridge","getLocation","args","resolve","reject","res","err","openLocation","navigateTo","postMessage","switchTab","url","register","init","downloadCdn","notLoginRegister","getConfig","arg","urlParam","response","setConfig","initConfig","configData","wcChatInitNotLogin","isAndroid","RUN_ENV","androidFunction","callback","iosFunction","WVJBIframe","bridge","msg","responseCallback","name","toNativeParams","data","initBridge","alipayInit","weChatInit","mobileInit"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"mo-h5-bridge.js","sources":["../node_modules/.pnpm/mo-front-end-util@0.0.12_postcss@8.4.38_rollup@4.18.0_typescript@5.4.5_vite@5.2.12_sass@1.77.4_terser@5.31.1_/node_modules/mo-front-end-util/dist/mo-front-end-util.js","../package/sdk/alipay/const.ts","../package/const.ts","../package/sdk/alipay/get-location/index.ts","../package/sdk/alipay/open-location/index.ts","../package/sdk/alipay/navigate-to/index.ts","../package/sdk/alipay/post-message/index.ts","../package/sdk/alipay/switch-tab/index.ts","../package/sdk/alipay/register.ts","../package/sdk/alipay/index.ts","../package/sdk/we-chat/const.ts","../package/sdk/we-chat/get-location/index.ts","../package/sdk/we-chat/open-location/index.ts","../package/sdk/we-chat/post-message/index.ts","../package/sdk/we-chat/navigate-to/index.ts","../package/sdk/we-chat/switch-tab/index.ts","../package/sdk/we-chat/register.ts","../package/sdk/we-chat/index.ts","../package/sdk/mobile/depend.ts","../package/sdk/mobile/index.ts","../package/main.ts"],"sourcesContent":["const a = /^1[3456789]\\d{9}$/, c = /[\\(\\)\\`\\~\\!\\@\\#\\$\\%\\^\\&\\*\\-\\+\\=\\_\\|\\{\\}\\[\\]\\:\\;\\'\\<\\>\\,\\.\\?\\\\]/, r = /^(?=.*\\d)(?=.*[a-zA-Z])(?=.*[`~!@#$%^&*()-+=_|{}\\[\\]:;'<>,.?/])[\\da-zA-Z`~!@#$%^&*()-+=_|{}\\[\\]:;'<>,.?/]{12,30}$/;\nfunction l(o) {\n return new Promise((t) => {\n const i = document.createElement(\"script\");\n i.type = \"text/javascript\", i.src = o, i.onload = function() {\n t();\n }, document.head.appendChild(i);\n });\n}\nfunction p(o, t) {\n const i = document.createElement(\"a\");\n i.href = URL.createObjectURL(o), i.target = \"_blank\", i.download = t, document.body.appendChild(i), i.click(), URL.revokeObjectURL(i.href), document.body.removeChild(i);\n}\nconst n = navigator.userAgent, d = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(n), s = /Windows|Macintosh|Linux/i.test(n) && !d, e = {\n WeChatMini: \"WeChatMini\",\n // 微信小程序\n AlipayMini: \"AlipayMini\",\n // 支付宝小程序\n Android: \"Android\",\n // 安卓端\n Ios: \"Ios\",\n // ios端\n Mobile: \"Mobile\",\n // 移动端\n Pc: \"Pc\"\n // pc端\n}, h = {\n [\"is\" + e.WeChatMini]: /miniProgram/i.test(n),\n // 微信小程序\n [\"is\" + e.AlipayMini]: /AlipayClient.*miniProgram/i.test(n),\n // 支付宝小程序\n [\"is\" + e.Android]: /Android/i.test(n),\n // andorid\n [\"is\" + e.Ios]: /iPhone|iPad|iPod/i.test(n),\n // ios\n [\"is\" + e.Mobile]: d,\n [\"is\" + e.Pc]: s\n};\nexport {\n e as ALL_ENV,\n h as RUN_ENV,\n p as downloadByBlob,\n l as downloadCdn,\n r as passwordReg,\n a as phoneReg,\n c as specialCharReg\n};\n//# sourceMappingURL=mo-front-end-util.js.map\n","// 支付宝sdk下载地址\r\nexport const URL_PATH = 'https://appx/web-view.min.js';\r\n","// 桥接对象,供外部使用\r\n\r\nexport const Bridge: {\r\n // 范围:wechat\r\n // 功能:请求授权\r\n // 参数:wechat\r\n authorize: any;\r\n // 范围:wechat\r\n // 功能:获取位置 参数:\r\n // wechat、\r\n getLocation: any;\r\n // 范围:wechat\r\n // 功能:打开地图\r\n // 参数:wechat\r\n openLocation: any;\r\n // 范围:wechat\r\n // 功能:开启设置\r\n // 参数:wechat\r\n openSetting: any;\r\n openURL: any;\r\n // 范围:wechat(不能跳转tab页)、客户端\r\n // 功能:跳转到某一页\r\n // 参数:wechat\r\n navigateTo: any;\r\n // 范围:wechat\r\n // 功能:发送消息(wechat小程序中只能在h5退出项目时才能触发)\r\n // 参数:wechat\r\n postMessage: any;\r\n // 范围:android、ios\r\n // 功能:获取token\r\n // 参数:无\r\n getToken: any;\r\n // 范围:wechat\r\n // 功能:跳转tab页\r\n // 参数:wechat\r\n switchTab: any;\r\n // 范围:客户端\r\n // 功能:进入订单详情页,库存页面,点击订单进入详情页\r\n // 参数:无\r\n gotoOrderDetail: any;\r\n // 范围:客户端\r\n // 功能:获取库存页面的区域\r\n // 参数:无\r\n getAreas: any;\r\n // 范围:客户端\r\n // 功能:返回上一级\r\n // 参数:无\r\n goBack: any;\r\n} = {\r\n authorize: undefined,\r\n getLocation: undefined,\r\n openLocation: undefined,\r\n openSetting: undefined,\r\n openURL: undefined,\r\n navigateTo: undefined,\r\n postMessage: undefined,\r\n getToken: undefined,\r\n switchTab: undefined,\r\n gotoOrderDetail: undefined,\r\n getAreas: undefined\r\n};\r\n","export async function getLocation(...args: any[]) {\r\n return new Promise((resolve, reject) => {\r\n my.getLocation({\r\n ...args,\r\n success: function (res: unknown) {\r\n resolve(res);\r\n },\r\n fail: function (err: unknown) {\r\n reject(err);\r\n }\r\n });\r\n });\r\n}\r\n","export async function openLocation(...args: any[]) {\r\n return new Promise((resolve, reject) => {\r\n my.openLocation({\r\n ...args,\r\n success: function (res: unknown) {\r\n resolve(res);\r\n },\r\n fail: function (err: unknown) {\r\n reject(err);\r\n }\r\n });\r\n });\r\n}\r\n","export async function navigateTo(...args: any[]) {\r\n return new Promise((resolve, reject) => {\r\n my.navigateTo({\r\n ...args,\r\n success: function (res: unknown) {\r\n resolve(res);\r\n },\r\n fail: function (err: unknown) {\r\n reject(err);\r\n }\r\n });\r\n });\r\n}\r\n","export async function postMessage(...args: any[]) {\r\n return new Promise((resolve, reject) => {\r\n my.postMessage({\r\n ...args,\r\n success: function (res: unknown) {\r\n resolve(res);\r\n },\r\n fail: function (err: unknown) {\r\n reject(err);\r\n }\r\n });\r\n });\r\n}\r\n","export function switchTab(url: string) {\r\n my.switchTab({\r\n url\r\n });\r\n}\r\n","import { Bridge } from '../../const';\r\n\r\nimport { getLocation } from './get-location';\r\nimport { openLocation } from './open-location';\r\nimport { navigateTo } from './navigate-to';\r\nimport { postMessage } from './post-message';\r\nimport { switchTab } from './switch-tab';\r\n\r\n// 在这里添加具体的需要暴露的方法名\r\nexport function register() {\r\n Bridge.getLocation = getLocation;\r\n Bridge.openLocation = openLocation;\r\n Bridge.navigateTo = navigateTo;\r\n Bridge.postMessage = postMessage;\r\n Bridge.switchTab = switchTab;\r\n}\r\n","import { downloadCdn } from 'mo-front-end-util';\r\nimport { URL_PATH } from './const';\r\nimport { register } from './register';\r\n\r\nexport async function init() {\r\n await downloadCdn(URL_PATH);\r\n\r\n register();\r\n}\r\n","// 支付宝sdk下载地址\r\nexport const URL_PATH = 'https://res.wx.qq.com/open/js/jweixin-1.6.0.js';\r\n","export async function getLocation(...args: any) {\r\n return new Promise((resolve, reject) => {\r\n wx.getLocation({\r\n ...args,\r\n success: function (res: unknown) {\r\n resolve(res);\r\n },\r\n fail: function (err: unknown) {\r\n reject(err);\r\n }\r\n });\r\n });\r\n}\r\n","export async function openLocation(...args: any) {\r\n return new Promise((resolve, reject) => {\r\n wx.openLocation({\r\n ...args,\r\n success: function (res: unknown) {\r\n resolve(res);\r\n },\r\n fail: function (err: unknown) {\r\n reject(err);\r\n }\r\n });\r\n });\r\n}\r\n","export async function postMessage(args: any) {\r\n return new Promise((resolve, reject) => {\r\n wx.miniProgram.postMessage({\r\n ...args,\r\n success: function (res: unknown) {\r\n resolve(res);\r\n },\r\n fail: function (err: unknown) {\r\n reject(err);\r\n }\r\n });\r\n });\r\n}\r\n","export async function navigateTo(args: any) {\r\n return new Promise((resolve, reject) => {\r\n wx.miniProgram.navigateTo({\r\n ...args,\r\n success: function (res: unknown) {\r\n resolve(res);\r\n },\r\n fail: function (err: unknown) {\r\n reject(err);\r\n }\r\n });\r\n });\r\n}\r\n","export function switchTab(url: string) {\r\n wx.miniProgram.switchTab(url);\r\n}\r\n","import { Bridge } from '../../const';\r\n\r\nimport { getLocation } from './get-location';\r\nimport { openLocation } from './open-location';\r\nimport { postMessage } from './post-message';\r\nimport { navigateTo } from './navigate-to';\r\nimport { switchTab } from './switch-tab';\r\n\r\nexport function register() {\r\n Bridge.getLocation = getLocation;\r\n Bridge.openLocation = openLocation;\r\n Bridge.postMessage = postMessage;\r\n Bridge.navigateTo = navigateTo;\r\n Bridge.switchTab = switchTab;\r\n}\r\n\r\nexport function notLoginRegister() {\r\n Bridge.postMessage = postMessage;\r\n Bridge.navigateTo = navigateTo;\r\n Bridge.switchTab = switchTab;\r\n}\r\n","import { downloadCdn } from 'mo-front-end-util';\r\nimport { URL_PATH } from './const';\r\nimport { register, notLoginRegister } from './register';\r\n\r\nasync function getConfig(arg: InitWxConfigType) {\r\n const urlParam = location.href.split('#')[0];\r\n\r\n return await fetch(`${arg.requestUrl}?url=${urlParam}`).then((response) => {\r\n return response.json();\r\n });\r\n\r\n // return await fetch(`${arg.requestUrl}?url=${urlParam}`, {\r\n // headers: {\r\n // token: arg.token,\r\n // 'Content-Type': 'application/json'\r\n // }\r\n // }).then((response) => {\r\n // return response.json();\r\n // });\r\n}\r\n\r\nfunction setConfig(arg: InitWxConfigType) {\r\n async function initConfig() {\r\n const configData = await getConfig(arg);\r\n wx.config({\r\n debug: false,\r\n appId: configData.data.appId,\r\n timestamp: configData.data.timestamp,\r\n nonceStr: configData.data.nonceStr,\r\n signature: configData.data.signature,\r\n jsApiList: [\r\n // 获取当前的地理位置、速度:\r\n // 微信小程序与支付宝同名\r\n 'getLocation',\r\n // 使用微信内置地图查看位置:\r\n // 微信小程序与支付宝同名\r\n 'openLocation',\r\n 'startRecord',\r\n 'chooseImage',\r\n 'scanQRCode'\r\n ]\r\n });\r\n }\r\n\r\n initConfig();\r\n\r\n // // wx.error只需要注册一次,每次失败间隔会重新初始化\r\n // wx.error(() => {\r\n // setTimeout(() => {\r\n // initConfig();\r\n // }, 1000 * 3);\r\n // });\r\n\r\n // 签名5min会过期,所以需要定时更新签名\r\n setInterval(\r\n async (res) => {\r\n console.log('js-sdk 重新初始化', res);\r\n initConfig();\r\n },\r\n 1000 * 60 * 4\r\n );\r\n\r\n return Promise.resolve();\r\n}\r\n\r\nasync function wcChatInitNotLogin() {\r\n await downloadCdn(URL_PATH);\r\n\r\n notLoginRegister();\r\n}\r\n\r\nexport async function init(arg: InitWxConfigType) {\r\n await downloadCdn(URL_PATH);\r\n await setConfig(arg);\r\n\r\n wx.ready(function () {\r\n register();\r\n });\r\n}\r\n\r\nexport { wcChatInitNotLogin };\r\n","/**\r\n * 使用 JSBridge 总结:\r\n * 1、跟 IOS 交互的时候,只需要且必须注册 iosFunction 方法即可,\r\n * 不能在 setupWebViewJavascriptBridge 中执行 bridge.init 方法,否则 IOS 无法调用到 H5 的注册函数;\r\n * 2、与安卓进行交互的时候\r\n * ①、使用 iosFunction,就可以实现 H5 调用 安卓的注册函数,但是安卓无法调用 H5 的注册函数,\r\n * 并且 H5 调用安卓成功后的回调函数也无法执行\r\n * ②、使用 androidFunction 并且要在 setupWebViewJavascriptBridge 中执行 bridge.init 方法,\r\n * 安卓才可以正常调用 H5 的回调函数,并且 H5 调用安卓成功后的回调函数也可以正常执行了\r\n */\r\n\r\n// @ts-nocheck\r\n\r\nimport { RUN_ENV } from 'mo-front-end-util';\r\n\r\nconst isAndroid = RUN_ENV.isAndroid;\r\n\r\n/**\r\n * Android 与安卓交互时:\r\n * 1、不调用这个函数安卓无法调用 H5 注册的事件函数;\r\n * 2、但是 H5 可以正常调用安卓注册的事件函数;\r\n * 3、还必须在 setupWebViewJavascriptBridge 中执行 bridge.init 方法,否则:\r\n * ①、安卓依然无法调用 H5 注册的事件函数\r\n * ①、H5 正常调用安卓事件函数后的回调函数无法正常执行\r\n *\r\n * @param {*} callback\r\n */\r\nconst androidFunction = (callback) => {\r\n if (window.WebViewJavascriptBridge) {\r\n callback(window.WebViewJavascriptBridge);\r\n } else {\r\n document.addEventListener(\r\n 'WebViewJavascriptBridgeReady',\r\n function () {\r\n callback(window.WebViewJavascriptBridge);\r\n },\r\n false\r\n );\r\n }\r\n};\r\n\r\n/**\r\n * IOS 与 IOS 交互时,使用这个函数即可,别的操作都不需要执行\r\n * @param {*} callback\r\n */\r\nconst iosFunction = (callback) => {\r\n if (window.WebViewJavascriptBridge) {\r\n return callback(window.WebViewJavascriptBridge);\r\n }\r\n if (window.WVJBCallbacks) {\r\n return window.WVJBCallbacks.push(callback);\r\n }\r\n window.WVJBCallbacks = [callback];\r\n const WVJBIframe = document.createElement('iframe');\r\n WVJBIframe.style.display = 'none';\r\n WVJBIframe.src = 'wvjbscheme://__BRIDGE_LOADED__';\r\n document.documentElement.appendChild(WVJBIframe);\r\n setTimeout(function () {\r\n document.documentElement.removeChild(WVJBIframe);\r\n }, 0);\r\n};\r\n\r\n/**\r\n * 注册 setupWebViewJavascriptBridge 方法\r\n * 之所以不将上面两个方法融合成一个方法,是因为放在一起,那么就只有 iosFunction 中相关的方法体生效\r\n */\r\nwindow.setupWebViewJavascriptBridge = isAndroid ? androidFunction : iosFunction;\r\n\r\n/**\r\n * 这里如果不做判断是不是安卓,而是直接就执行下面的方法,就会导致\r\n * 1、IOS 无法调用 H5 这边注册的事件函数\r\n * 2、H5 可以正常调用 IOS 这边的事件函数,并且 H5 的回调函数可以正常执行\r\n */\r\nif (isAndroid) {\r\n /**\r\n * 与安卓交互时,不调用这个函数会导致:\r\n * 1、H5 可以正常调用 安卓这边的事件函数,但是无法再调用到 H5 的回调函数\r\n *\r\n * 前提 setupWebViewJavascriptBridge 这个函数使用的是 androidFunction 这个,否则还是会导致上面 1 的现象出现\r\n */\r\n window.setupWebViewJavascriptBridge(function (bridge) {\r\n // 注册 H5 界面的默认接收函数(与安卓交互时,不注册这个事件无法接收回调函数)\r\n bridge.init(function (msg, responseCallback) {\r\n alert(msg);\r\n responseCallback('JS 返回给原生的消息内容');\r\n });\r\n });\r\n}\r\n","import './depend';\r\nimport { Bridge } from '../../const';\r\n\r\nexport async function init() {\r\n // @ts-ignore\r\n window.setupWebViewJavascriptBridge((bridge) => {\r\n Object.keys(Bridge).forEach((name) => {\r\n Bridge[name as keyof typeof Bridge] = function (toNativeParams: unknown) {\r\n return new Promise((resolve, reject) => {\r\n // 调用原生方法\r\n bridge.callHandler(\r\n 'sendToNative',\r\n // 传递给原生的参数\r\n {\r\n type: name,\r\n value: toNativeParams\r\n },\r\n (data: { type: string; value: any }) => {\r\n console.log('name2 fromNativeParams', data);\r\n // 原生返回回来的数据\r\n if (data.type === 'success') {\r\n resolve(data.value);\r\n } else {\r\n reject(data.value);\r\n }\r\n }\r\n );\r\n });\r\n };\r\n });\r\n });\r\n}\r\n","import { RUN_ENV } from 'mo-front-end-util';\r\nimport { init as alipayInit } from './sdk/alipay/index';\r\nimport { init as weChatInit, wcChatInitNotLogin } from './sdk/we-chat/index';\r\nimport { init as mobileInit } from './sdk/mobile/index';\r\nimport { Bridge } from './const';\r\n\r\nasync function initBridge(arg: void | InitWxConfigType) {\r\n if (RUN_ENV.isAlipayMini) {\r\n await alipayInit();\r\n } else if (RUN_ENV.isWeChatMini) {\r\n if (!arg || !arg.token) {\r\n await wcChatInitNotLogin();\r\n } else {\r\n await weChatInit(arg as InitWxConfigType);\r\n }\r\n } else {\r\n await mobileInit();\r\n }\r\n}\r\n\r\nexport { Bridge, initBridge };\r\n"],"names":["l","o","i","n","s","e","h","URL_PATH","Bridge","getLocation","args","resolve","reject","res","err","openLocation","navigateTo","postMessage","switchTab","url","register","init","downloadCdn","notLoginRegister","getConfig","arg","urlParam","response","setConfig","initConfig","configData","wcChatInitNotLogin","isAndroid","RUN_ENV","androidFunction","callback","iosFunction","WVJBIframe","bridge","msg","responseCallback","name","toNativeParams","data","initBridge","alipayInit","weChatInit","mobileInit"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,2 +1,2 @@
1
- (function(s,a){typeof exports=="object"&&typeof module<"u"?a(exports):typeof define=="function"&&define.amd?define(["exports"],a):(s=typeof globalThis<"u"?globalThis:s||self,a(s["mo-h5-bridge"]={}))})(this,function(s){"use strict";function a(i){return new Promise(t=>{const n=document.createElement("script");n.type="text/javascript",n.src=i,n.onload=function(){t()},document.head.appendChild(n)})}const c=navigator.userAgent,f=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(c),m=/Windows|Macintosh|Linux/i.test(c)&&!f,r={WeChatMini:"WeChatMini",AlipayMini:"AlipayMini",Android:"Android",Ios:"Ios",Mobile:"Mobile",Pc:"Pc"},d={["is"+r.WeChatMini]:/miniProgram/i.test(c),["is"+r.AlipayMini]:/AlipayClient.*miniProgram/i.test(c),["is"+r.Android]:/Android/i.test(c),["is"+r.Ios]:/iPhone|iPad|iPod/i.test(c),["is"+r.Mobile]:f,["is"+r.Pc]:m},v="https://appx/web-view.min.js",o={authorize:void 0,getLocation:void 0,openLocation:void 0,openSetting:void 0,openURL:void 0,navigateTo:void 0,postMessage:void 0,getToken:void 0,switchTab:void 0,gotoOrderDetail:void 0,getAreas:void 0};async function y(...i){return new Promise((t,n)=>{my.getLocation({...i,success:function(e){t(e)},fail:function(e){n(e)}})})}async function h(...i){return new Promise((t,n)=>{my.openLocation({...i,success:function(e){t(e)},fail:function(e){n(e)}})})}async function P(...i){return new Promise((t,n)=>{my.navigateTo({...i,success:function(e){t(e)},fail:function(e){n(e)}})})}async function b(...i){return new Promise((t,n)=>{my.postMessage({...i,success:function(e){t(e)},fail:function(e){n(e)}})})}function L(i){my.switchTab({url:i})}function M(){o.getLocation=y,o.openLocation=h,o.navigateTo=P,o.postMessage=b,o.switchTab=L}async function B(){await a(v),M()}const w="https://res.wx.qq.com/open/js/jweixin-1.6.0.js";async function T(...i){return new Promise((t,n)=>{wx.getLocation({...i,success:function(e){t(e)},fail:function(e){n(e)}})})}async function A(...i){return new Promise((t,n)=>{wx.openLocation({...i,success:function(e){t(e)},fail:function(e){n(e)}})})}async function p(i){return new Promise((t,n)=>{wx.miniProgram.postMessage({...i,success:function(e){t(e)},fail:function(e){n(e)}})})}async function g(i){return new Promise((t,n)=>{wx.miniProgram.navigateTo({...i,success:function(e){t(e)},fail:function(e){n(e)}})})}function W(){o.getLocation=T,o.openLocation=A,o.postMessage=p,o.navigateTo=g}function C(){o.postMessage=p,o.navigateTo=g}async function J(i){const t=location.href.split("#")[0];return await fetch(`${i.requestUrl}?url=${t}`).then(n=>n.json())}function V(i){async function t(){const n=await J(i);wx.config({debug:!1,appId:n.data.appId,timestamp:n.data.timestamp,nonceStr:n.data.nonceStr,signature:n.data.signature,jsApiList:["getLocation","openLocation","startRecord","chooseImage","scanQRCode"]})}return t(),setInterval(async n=>{console.log("js-sdk 重新初始化",n),t()},1e3*60*4),Promise.resolve()}async function j(){await a(w),C()}async function x(i){await a(w),await V(i),wx.ready(function(){W()})}const l=d.isAndroid,I=i=>{window.WebViewJavascriptBridge?i(window.WebViewJavascriptBridge):document.addEventListener("WebViewJavascriptBridgeReady",function(){i(window.WebViewJavascriptBridge)},!1)},$=i=>{if(window.WebViewJavascriptBridge)return i(window.WebViewJavascriptBridge);if(window.WVJBCallbacks)return window.WVJBCallbacks.push(i);window.WVJBCallbacks=[i];const t=document.createElement("iframe");t.style.display="none",t.src="wvjbscheme://__BRIDGE_LOADED__",document.documentElement.appendChild(t),setTimeout(function(){document.documentElement.removeChild(t)},0)};window.setupWebViewJavascriptBridge=l?I:$,l&&window.setupWebViewJavascriptBridge(function(i){i.init(function(t,n){alert(t),n("JS 返回给原生的消息内容")})});async function E(){window.setupWebViewJavascriptBridge(i=>{Object.keys(o).forEach(t=>{o[t]=function(n){return new Promise((e,S)=>{i.callHandler("sendToNative",{type:t,value:n},u=>{console.log("name2 fromNativeParams",u),u.type==="success"?e(u.value):S(u.value)})})}})})}async function R(i){d.isAlipayMini?await B():d.isWeChatMini?!i||!i.token?await j():await x(i):await E()}s.Bridge=o,s.initBridge=R,Object.defineProperty(s,Symbol.toStringTag,{value:"Module"})});
1
+ (function(s,a){typeof exports=="object"&&typeof module<"u"?a(exports):typeof define=="function"&&define.amd?define(["exports"],a):(s=typeof globalThis<"u"?globalThis:s||self,a(s["mo-h5-bridge"]={}))})(this,function(s){"use strict";function a(i){return new Promise(t=>{const n=document.createElement("script");n.type="text/javascript",n.src=i,n.onload=function(){t()},document.head.appendChild(n)})}const c=navigator.userAgent,f=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(c),v=/Windows|Macintosh|Linux/i.test(c)&&!f,r={WeChatMini:"WeChatMini",AlipayMini:"AlipayMini",Android:"Android",Ios:"Ios",Mobile:"Mobile",Pc:"Pc"},d={["is"+r.WeChatMini]:/miniProgram/i.test(c),["is"+r.AlipayMini]:/AlipayClient.*miniProgram/i.test(c),["is"+r.Android]:/Android/i.test(c),["is"+r.Ios]:/iPhone|iPad|iPod/i.test(c),["is"+r.Mobile]:f,["is"+r.Pc]:v},y="https://appx/web-view.min.js",o={authorize:void 0,getLocation:void 0,openLocation:void 0,openSetting:void 0,openURL:void 0,navigateTo:void 0,postMessage:void 0,getToken:void 0,switchTab:void 0,gotoOrderDetail:void 0,getAreas:void 0};async function h(...i){return new Promise((t,n)=>{my.getLocation({...i,success:function(e){t(e)},fail:function(e){n(e)}})})}async function b(...i){return new Promise((t,n)=>{my.openLocation({...i,success:function(e){t(e)},fail:function(e){n(e)}})})}async function P(...i){return new Promise((t,n)=>{my.navigateTo({...i,success:function(e){t(e)},fail:function(e){n(e)}})})}async function L(...i){return new Promise((t,n)=>{my.postMessage({...i,success:function(e){t(e)},fail:function(e){n(e)}})})}function T(i){my.switchTab({url:i})}function M(){o.getLocation=h,o.openLocation=b,o.navigateTo=P,o.postMessage=L,o.switchTab=T}async function B(){await a(y),M()}const w="https://res.wx.qq.com/open/js/jweixin-1.6.0.js";async function A(...i){return new Promise((t,n)=>{wx.getLocation({...i,success:function(e){t(e)},fail:function(e){n(e)}})})}async function W(...i){return new Promise((t,n)=>{wx.openLocation({...i,success:function(e){t(e)},fail:function(e){n(e)}})})}async function g(i){return new Promise((t,n)=>{wx.miniProgram.postMessage({...i,success:function(e){t(e)},fail:function(e){n(e)}})})}async function p(i){return new Promise((t,n)=>{wx.miniProgram.navigateTo({...i,success:function(e){t(e)},fail:function(e){n(e)}})})}function l(i){wx.miniProgram.switchTab(i)}function C(){o.getLocation=A,o.openLocation=W,o.postMessage=g,o.navigateTo=p,o.switchTab=l}function J(){o.postMessage=g,o.navigateTo=p,o.switchTab=l}async function x(i){const t=location.href.split("#")[0];return await fetch(`${i.requestUrl}?url=${t}`).then(n=>n.json())}function V(i){async function t(){const n=await x(i);wx.config({debug:!1,appId:n.data.appId,timestamp:n.data.timestamp,nonceStr:n.data.nonceStr,signature:n.data.signature,jsApiList:["getLocation","openLocation","startRecord","chooseImage","scanQRCode"]})}return t(),setInterval(async n=>{console.log("js-sdk 重新初始化",n),t()},1e3*60*4),Promise.resolve()}async function j(){await a(w),J()}async function I(i){await a(w),await V(i),wx.ready(function(){C()})}const m=d.isAndroid,$=i=>{window.WebViewJavascriptBridge?i(window.WebViewJavascriptBridge):document.addEventListener("WebViewJavascriptBridgeReady",function(){i(window.WebViewJavascriptBridge)},!1)},E=i=>{if(window.WebViewJavascriptBridge)return i(window.WebViewJavascriptBridge);if(window.WVJBCallbacks)return window.WVJBCallbacks.push(i);window.WVJBCallbacks=[i];const t=document.createElement("iframe");t.style.display="none",t.src="wvjbscheme://__BRIDGE_LOADED__",document.documentElement.appendChild(t),setTimeout(function(){document.documentElement.removeChild(t)},0)};window.setupWebViewJavascriptBridge=m?$:E,m&&window.setupWebViewJavascriptBridge(function(i){i.init(function(t,n){alert(t),n("JS 返回给原生的消息内容")})});async function R(){window.setupWebViewJavascriptBridge(i=>{Object.keys(o).forEach(t=>{o[t]=function(n){return new Promise((e,_)=>{i.callHandler("sendToNative",{type:t,value:n},u=>{console.log("name2 fromNativeParams",u),u.type==="success"?e(u.value):_(u.value)})})}})})}async function S(i){d.isAlipayMini?await B():d.isWeChatMini?!i||!i.token?await j():await I(i):await R()}s.Bridge=o,s.initBridge=S,Object.defineProperty(s,Symbol.toStringTag,{value:"Module"})});
2
2
  //# sourceMappingURL=mo-h5-bridge.umd.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"mo-h5-bridge.umd.cjs","sources":["../node_modules/.pnpm/mo-front-end-util@0.0.12_postcss@8.4.38_rollup@4.18.0_typescript@5.4.5_vite@5.2.12_sass@1.77.4_terser@5.31.1_/node_modules/mo-front-end-util/dist/mo-front-end-util.js","../package/sdk/alipay/const.ts","../package/const.ts","../package/sdk/alipay/get-location/index.ts","../package/sdk/alipay/open-location/index.ts","../package/sdk/alipay/navigate-to/index.ts","../package/sdk/alipay/post-message/index.ts","../package/sdk/alipay/switch-tab/index.ts","../package/sdk/alipay/register.ts","../package/sdk/alipay/index.ts","../package/sdk/we-chat/const.ts","../package/sdk/we-chat/get-location/index.ts","../package/sdk/we-chat/open-location/index.ts","../package/sdk/we-chat/post-message/index.ts","../package/sdk/we-chat/navigate-to/index.ts","../package/sdk/we-chat/register.ts","../package/sdk/we-chat/index.ts","../package/sdk/mobile/depend.ts","../package/sdk/mobile/index.ts","../package/main.ts"],"sourcesContent":["const a = /^1[3456789]\\d{9}$/, c = /[\\(\\)\\`\\~\\!\\@\\#\\$\\%\\^\\&\\*\\-\\+\\=\\_\\|\\{\\}\\[\\]\\:\\;\\'\\<\\>\\,\\.\\?\\\\]/, r = /^(?=.*\\d)(?=.*[a-zA-Z])(?=.*[`~!@#$%^&*()-+=_|{}\\[\\]:;'<>,.?/])[\\da-zA-Z`~!@#$%^&*()-+=_|{}\\[\\]:;'<>,.?/]{12,30}$/;\nfunction l(o) {\n return new Promise((t) => {\n const i = document.createElement(\"script\");\n i.type = \"text/javascript\", i.src = o, i.onload = function() {\n t();\n }, document.head.appendChild(i);\n });\n}\nfunction p(o, t) {\n const i = document.createElement(\"a\");\n i.href = URL.createObjectURL(o), i.target = \"_blank\", i.download = t, document.body.appendChild(i), i.click(), URL.revokeObjectURL(i.href), document.body.removeChild(i);\n}\nconst n = navigator.userAgent, d = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(n), s = /Windows|Macintosh|Linux/i.test(n) && !d, e = {\n WeChatMini: \"WeChatMini\",\n // 微信小程序\n AlipayMini: \"AlipayMini\",\n // 支付宝小程序\n Android: \"Android\",\n // 安卓端\n Ios: \"Ios\",\n // ios端\n Mobile: \"Mobile\",\n // 移动端\n Pc: \"Pc\"\n // pc端\n}, h = {\n [\"is\" + e.WeChatMini]: /miniProgram/i.test(n),\n // 微信小程序\n [\"is\" + e.AlipayMini]: /AlipayClient.*miniProgram/i.test(n),\n // 支付宝小程序\n [\"is\" + e.Android]: /Android/i.test(n),\n // andorid\n [\"is\" + e.Ios]: /iPhone|iPad|iPod/i.test(n),\n // ios\n [\"is\" + e.Mobile]: d,\n [\"is\" + e.Pc]: s\n};\nexport {\n e as ALL_ENV,\n h as RUN_ENV,\n p as downloadByBlob,\n l as downloadCdn,\n r as passwordReg,\n a as phoneReg,\n c as specialCharReg\n};\n//# sourceMappingURL=mo-front-end-util.js.map\n","// 支付宝sdk下载地址\r\nexport const URL_PATH = 'https://appx/web-view.min.js';\r\n","// 桥接对象,供外部使用\r\n\r\nexport const Bridge: {\r\n // 范围:wechat\r\n // 功能:请求授权\r\n // 参数:wechat\r\n authorize: any;\r\n // 范围:wechat\r\n // 功能:获取位置 参数:\r\n // wechat、\r\n getLocation: any;\r\n // 范围:wechat\r\n // 功能:打开地图\r\n // 参数:wechat\r\n openLocation: any;\r\n // 范围:wechat\r\n // 功能:开启设置\r\n // 参数:wechat\r\n openSetting: any;\r\n openURL: any;\r\n // 范围:wechat(不能跳转tab页)、客户端\r\n // 功能:跳转到某一页\r\n // 参数:wechat\r\n navigateTo: any;\r\n // 范围:wechat\r\n // 功能:发送消息(wechat小程序中只能在h5退出项目时才能触发)\r\n // 参数:wechat\r\n postMessage: any;\r\n // 范围:android、ios\r\n // 功能:获取token\r\n // 参数:无\r\n getToken: any;\r\n // 范围:wechat\r\n // 功能:跳转tab页\r\n // 参数:wechat\r\n switchTab: any;\r\n // 范围:客户端\r\n // 功能:进入订单详情页,库存页面,点击订单进入详情页\r\n // 参数:无\r\n gotoOrderDetail: any;\r\n // 范围:客户端\r\n // 功能:获取库存页面的区域\r\n // 参数:无\r\n getAreas: any;\r\n // 范围:客户端\r\n // 功能:返回上一级\r\n // 参数:无\r\n goBack: any;\r\n} = {\r\n authorize: undefined,\r\n getLocation: undefined,\r\n openLocation: undefined,\r\n openSetting: undefined,\r\n openURL: undefined,\r\n navigateTo: undefined,\r\n postMessage: undefined,\r\n getToken: undefined,\r\n switchTab: undefined,\r\n gotoOrderDetail: undefined,\r\n getAreas: undefined\r\n};\r\n","export async function getLocation(...args: any[]) {\r\n return new Promise((resolve, reject) => {\r\n my.getLocation({\r\n ...args,\r\n success: function (res: unknown) {\r\n resolve(res);\r\n },\r\n fail: function (err: unknown) {\r\n reject(err);\r\n }\r\n });\r\n });\r\n}\r\n","export async function openLocation(...args: any[]) {\r\n return new Promise((resolve, reject) => {\r\n my.openLocation({\r\n ...args,\r\n success: function (res: unknown) {\r\n resolve(res);\r\n },\r\n fail: function (err: unknown) {\r\n reject(err);\r\n }\r\n });\r\n });\r\n}\r\n","export async function navigateTo(...args: any[]) {\r\n return new Promise((resolve, reject) => {\r\n my.navigateTo({\r\n ...args,\r\n success: function (res: unknown) {\r\n resolve(res);\r\n },\r\n fail: function (err: unknown) {\r\n reject(err);\r\n }\r\n });\r\n });\r\n}\r\n","export async function postMessage(...args: any[]) {\r\n return new Promise((resolve, reject) => {\r\n my.postMessage({\r\n ...args,\r\n success: function (res: unknown) {\r\n resolve(res);\r\n },\r\n fail: function (err: unknown) {\r\n reject(err);\r\n }\r\n });\r\n });\r\n}\r\n","export function switchTab(url: string) {\r\n my.switchTab({\r\n url\r\n });\r\n}\r\n","import { Bridge } from '../../const';\r\n\r\nimport { getLocation } from './get-location';\r\nimport { openLocation } from './open-location';\r\nimport { navigateTo } from './navigate-to';\r\nimport { postMessage } from './post-message';\r\nimport { switchTab } from './switch-tab';\r\n\r\n// 在这里添加具体的需要暴露的方法名\r\nexport function register() {\r\n Bridge.getLocation = getLocation;\r\n Bridge.openLocation = openLocation;\r\n Bridge.navigateTo = navigateTo;\r\n Bridge.postMessage = postMessage;\r\n Bridge.switchTab = switchTab;\r\n}\r\n","import { downloadCdn } from 'mo-front-end-util';\r\nimport { URL_PATH } from './const';\r\nimport { register } from './register';\r\n\r\nexport async function init() {\r\n await downloadCdn(URL_PATH);\r\n\r\n register();\r\n}\r\n","// 支付宝sdk下载地址\r\nexport const URL_PATH = 'https://res.wx.qq.com/open/js/jweixin-1.6.0.js';\r\n","export async function getLocation(...args: any) {\r\n return new Promise((resolve, reject) => {\r\n wx.getLocation({\r\n ...args,\r\n success: function (res: unknown) {\r\n resolve(res);\r\n },\r\n fail: function (err: unknown) {\r\n reject(err);\r\n }\r\n });\r\n });\r\n}\r\n","export async function openLocation(...args: any) {\r\n return new Promise((resolve, reject) => {\r\n wx.openLocation({\r\n ...args,\r\n success: function (res: unknown) {\r\n resolve(res);\r\n },\r\n fail: function (err: unknown) {\r\n reject(err);\r\n }\r\n });\r\n });\r\n}\r\n","export async function postMessage(args: any) {\r\n return new Promise((resolve, reject) => {\r\n wx.miniProgram.postMessage({\r\n ...args,\r\n success: function (res: unknown) {\r\n resolve(res);\r\n },\r\n fail: function (err: unknown) {\r\n reject(err);\r\n }\r\n });\r\n });\r\n}\r\n","export async function navigateTo(args: any) {\r\n return new Promise((resolve, reject) => {\r\n wx.miniProgram.navigateTo({\r\n ...args,\r\n success: function (res: unknown) {\r\n resolve(res);\r\n },\r\n fail: function (err: unknown) {\r\n reject(err);\r\n }\r\n });\r\n });\r\n}\r\n","import { Bridge } from '../../const';\r\n\r\nimport { getLocation } from './get-location';\r\nimport { openLocation } from './open-location';\r\nimport { postMessage } from './post-message';\r\nimport { navigateTo } from './navigate-to';\r\n\r\nexport function register() {\r\n Bridge.getLocation = getLocation;\r\n Bridge.openLocation = openLocation;\r\n Bridge.postMessage = postMessage;\r\n Bridge.navigateTo = navigateTo;\r\n}\r\n\r\nexport function notLoginRegister() {\r\n Bridge.postMessage = postMessage;\r\n Bridge.navigateTo = navigateTo;\r\n}\r\n","import { downloadCdn } from 'mo-front-end-util';\r\nimport { URL_PATH } from './const';\r\nimport { register, notLoginRegister } from './register';\r\n\r\nasync function getConfig(arg: InitWxConfigType) {\r\n const urlParam = location.href.split('#')[0];\r\n\r\n return await fetch(`${arg.requestUrl}?url=${urlParam}`).then((response) => {\r\n return response.json();\r\n });\r\n\r\n // return await fetch(`${arg.requestUrl}?url=${urlParam}`, {\r\n // headers: {\r\n // token: arg.token,\r\n // 'Content-Type': 'application/json'\r\n // }\r\n // }).then((response) => {\r\n // return response.json();\r\n // });\r\n}\r\n\r\nfunction setConfig(arg: InitWxConfigType) {\r\n async function initConfig() {\r\n const configData = await getConfig(arg);\r\n wx.config({\r\n debug: false,\r\n appId: configData.data.appId,\r\n timestamp: configData.data.timestamp,\r\n nonceStr: configData.data.nonceStr,\r\n signature: configData.data.signature,\r\n jsApiList: [\r\n // 获取当前的地理位置、速度:\r\n // 微信小程序与支付宝同名\r\n 'getLocation',\r\n // 使用微信内置地图查看位置:\r\n // 微信小程序与支付宝同名\r\n 'openLocation',\r\n 'startRecord',\r\n 'chooseImage',\r\n 'scanQRCode'\r\n ]\r\n });\r\n }\r\n\r\n initConfig();\r\n\r\n // // wx.error只需要注册一次,每次失败间隔会重新初始化\r\n // wx.error(() => {\r\n // setTimeout(() => {\r\n // initConfig();\r\n // }, 1000 * 3);\r\n // });\r\n\r\n // 签名5min会过期,所以需要定时更新签名\r\n setInterval(\r\n async (res) => {\r\n console.log('js-sdk 重新初始化', res);\r\n initConfig();\r\n },\r\n 1000 * 60 * 4\r\n );\r\n\r\n return Promise.resolve();\r\n}\r\n\r\nasync function wcChatInitNotLogin() {\r\n await downloadCdn(URL_PATH);\r\n\r\n notLoginRegister();\r\n}\r\n\r\nexport async function init(arg: InitWxConfigType) {\r\n await downloadCdn(URL_PATH);\r\n await setConfig(arg);\r\n\r\n wx.ready(function () {\r\n register();\r\n });\r\n}\r\n\r\nexport { wcChatInitNotLogin };\r\n","/**\r\n * 使用 JSBridge 总结:\r\n * 1、跟 IOS 交互的时候,只需要且必须注册 iosFunction 方法即可,\r\n * 不能在 setupWebViewJavascriptBridge 中执行 bridge.init 方法,否则 IOS 无法调用到 H5 的注册函数;\r\n * 2、与安卓进行交互的时候\r\n * ①、使用 iosFunction,就可以实现 H5 调用 安卓的注册函数,但是安卓无法调用 H5 的注册函数,\r\n * 并且 H5 调用安卓成功后的回调函数也无法执行\r\n * ②、使用 androidFunction 并且要在 setupWebViewJavascriptBridge 中执行 bridge.init 方法,\r\n * 安卓才可以正常调用 H5 的回调函数,并且 H5 调用安卓成功后的回调函数也可以正常执行了\r\n */\r\n\r\n// @ts-nocheck\r\n\r\nimport { RUN_ENV } from 'mo-front-end-util';\r\n\r\nconst isAndroid = RUN_ENV.isAndroid;\r\n\r\n/**\r\n * Android 与安卓交互时:\r\n * 1、不调用这个函数安卓无法调用 H5 注册的事件函数;\r\n * 2、但是 H5 可以正常调用安卓注册的事件函数;\r\n * 3、还必须在 setupWebViewJavascriptBridge 中执行 bridge.init 方法,否则:\r\n * ①、安卓依然无法调用 H5 注册的事件函数\r\n * ①、H5 正常调用安卓事件函数后的回调函数无法正常执行\r\n *\r\n * @param {*} callback\r\n */\r\nconst androidFunction = (callback) => {\r\n if (window.WebViewJavascriptBridge) {\r\n callback(window.WebViewJavascriptBridge);\r\n } else {\r\n document.addEventListener(\r\n 'WebViewJavascriptBridgeReady',\r\n function () {\r\n callback(window.WebViewJavascriptBridge);\r\n },\r\n false\r\n );\r\n }\r\n};\r\n\r\n/**\r\n * IOS 与 IOS 交互时,使用这个函数即可,别的操作都不需要执行\r\n * @param {*} callback\r\n */\r\nconst iosFunction = (callback) => {\r\n if (window.WebViewJavascriptBridge) {\r\n return callback(window.WebViewJavascriptBridge);\r\n }\r\n if (window.WVJBCallbacks) {\r\n return window.WVJBCallbacks.push(callback);\r\n }\r\n window.WVJBCallbacks = [callback];\r\n const WVJBIframe = document.createElement('iframe');\r\n WVJBIframe.style.display = 'none';\r\n WVJBIframe.src = 'wvjbscheme://__BRIDGE_LOADED__';\r\n document.documentElement.appendChild(WVJBIframe);\r\n setTimeout(function () {\r\n document.documentElement.removeChild(WVJBIframe);\r\n }, 0);\r\n};\r\n\r\n/**\r\n * 注册 setupWebViewJavascriptBridge 方法\r\n * 之所以不将上面两个方法融合成一个方法,是因为放在一起,那么就只有 iosFunction 中相关的方法体生效\r\n */\r\nwindow.setupWebViewJavascriptBridge = isAndroid ? androidFunction : iosFunction;\r\n\r\n/**\r\n * 这里如果不做判断是不是安卓,而是直接就执行下面的方法,就会导致\r\n * 1、IOS 无法调用 H5 这边注册的事件函数\r\n * 2、H5 可以正常调用 IOS 这边的事件函数,并且 H5 的回调函数可以正常执行\r\n */\r\nif (isAndroid) {\r\n /**\r\n * 与安卓交互时,不调用这个函数会导致:\r\n * 1、H5 可以正常调用 安卓这边的事件函数,但是无法再调用到 H5 的回调函数\r\n *\r\n * 前提 setupWebViewJavascriptBridge 这个函数使用的是 androidFunction 这个,否则还是会导致上面 1 的现象出现\r\n */\r\n window.setupWebViewJavascriptBridge(function (bridge) {\r\n // 注册 H5 界面的默认接收函数(与安卓交互时,不注册这个事件无法接收回调函数)\r\n bridge.init(function (msg, responseCallback) {\r\n alert(msg);\r\n responseCallback('JS 返回给原生的消息内容');\r\n });\r\n });\r\n}\r\n","import './depend';\r\nimport { Bridge } from '../../const';\r\n\r\nexport async function init() {\r\n // @ts-ignore\r\n window.setupWebViewJavascriptBridge((bridge) => {\r\n Object.keys(Bridge).forEach((name) => {\r\n Bridge[name as keyof typeof Bridge] = function (toNativeParams: unknown) {\r\n return new Promise((resolve, reject) => {\r\n // 调用原生方法\r\n bridge.callHandler(\r\n 'sendToNative',\r\n // 传递给原生的参数\r\n {\r\n type: name,\r\n value: toNativeParams\r\n },\r\n (data: { type: string; value: any }) => {\r\n console.log('name2 fromNativeParams', data);\r\n // 原生返回回来的数据\r\n if (data.type === 'success') {\r\n resolve(data.value);\r\n } else {\r\n reject(data.value);\r\n }\r\n }\r\n );\r\n });\r\n };\r\n });\r\n });\r\n}\r\n","import { RUN_ENV } from 'mo-front-end-util';\r\nimport { init as alipayInit } from './sdk/alipay/index';\r\nimport { init as weChatInit, wcChatInitNotLogin } from './sdk/we-chat/index';\r\nimport { init as mobileInit } from './sdk/mobile/index';\r\nimport { Bridge } from './const';\r\n\r\nasync function initBridge(arg: void | InitWxConfigType) {\r\n if (RUN_ENV.isAlipayMini) {\r\n await alipayInit();\r\n } else if (RUN_ENV.isWeChatMini) {\r\n if (!arg || !arg.token) {\r\n await wcChatInitNotLogin();\r\n } else {\r\n await weChatInit(arg as InitWxConfigType);\r\n }\r\n } else {\r\n await mobileInit();\r\n }\r\n}\r\n\r\nexport { Bridge, initBridge };\r\n"],"names":["l","o","i","n","d","s","e","h","URL_PATH","Bridge","getLocation","args","resolve","reject","res","err","openLocation","navigateTo","postMessage","switchTab","url","register","init","downloadCdn","notLoginRegister","getConfig","arg","urlParam","response","setConfig","initConfig","configData","wcChatInitNotLogin","isAndroid","RUN_ENV","androidFunction","callback","iosFunction","WVJBIframe","bridge","msg","responseCallback","name","toNativeParams","data","initBridge","alipayInit","weChatInit","mobileInit"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"mo-h5-bridge.umd.cjs","sources":["../node_modules/.pnpm/mo-front-end-util@0.0.12_postcss@8.4.38_rollup@4.18.0_typescript@5.4.5_vite@5.2.12_sass@1.77.4_terser@5.31.1_/node_modules/mo-front-end-util/dist/mo-front-end-util.js","../package/sdk/alipay/const.ts","../package/const.ts","../package/sdk/alipay/get-location/index.ts","../package/sdk/alipay/open-location/index.ts","../package/sdk/alipay/navigate-to/index.ts","../package/sdk/alipay/post-message/index.ts","../package/sdk/alipay/switch-tab/index.ts","../package/sdk/alipay/register.ts","../package/sdk/alipay/index.ts","../package/sdk/we-chat/const.ts","../package/sdk/we-chat/get-location/index.ts","../package/sdk/we-chat/open-location/index.ts","../package/sdk/we-chat/post-message/index.ts","../package/sdk/we-chat/navigate-to/index.ts","../package/sdk/we-chat/switch-tab/index.ts","../package/sdk/we-chat/register.ts","../package/sdk/we-chat/index.ts","../package/sdk/mobile/depend.ts","../package/sdk/mobile/index.ts","../package/main.ts"],"sourcesContent":["const a = /^1[3456789]\\d{9}$/, c = /[\\(\\)\\`\\~\\!\\@\\#\\$\\%\\^\\&\\*\\-\\+\\=\\_\\|\\{\\}\\[\\]\\:\\;\\'\\<\\>\\,\\.\\?\\\\]/, r = /^(?=.*\\d)(?=.*[a-zA-Z])(?=.*[`~!@#$%^&*()-+=_|{}\\[\\]:;'<>,.?/])[\\da-zA-Z`~!@#$%^&*()-+=_|{}\\[\\]:;'<>,.?/]{12,30}$/;\nfunction l(o) {\n return new Promise((t) => {\n const i = document.createElement(\"script\");\n i.type = \"text/javascript\", i.src = o, i.onload = function() {\n t();\n }, document.head.appendChild(i);\n });\n}\nfunction p(o, t) {\n const i = document.createElement(\"a\");\n i.href = URL.createObjectURL(o), i.target = \"_blank\", i.download = t, document.body.appendChild(i), i.click(), URL.revokeObjectURL(i.href), document.body.removeChild(i);\n}\nconst n = navigator.userAgent, d = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(n), s = /Windows|Macintosh|Linux/i.test(n) && !d, e = {\n WeChatMini: \"WeChatMini\",\n // 微信小程序\n AlipayMini: \"AlipayMini\",\n // 支付宝小程序\n Android: \"Android\",\n // 安卓端\n Ios: \"Ios\",\n // ios端\n Mobile: \"Mobile\",\n // 移动端\n Pc: \"Pc\"\n // pc端\n}, h = {\n [\"is\" + e.WeChatMini]: /miniProgram/i.test(n),\n // 微信小程序\n [\"is\" + e.AlipayMini]: /AlipayClient.*miniProgram/i.test(n),\n // 支付宝小程序\n [\"is\" + e.Android]: /Android/i.test(n),\n // andorid\n [\"is\" + e.Ios]: /iPhone|iPad|iPod/i.test(n),\n // ios\n [\"is\" + e.Mobile]: d,\n [\"is\" + e.Pc]: s\n};\nexport {\n e as ALL_ENV,\n h as RUN_ENV,\n p as downloadByBlob,\n l as downloadCdn,\n r as passwordReg,\n a as phoneReg,\n c as specialCharReg\n};\n//# sourceMappingURL=mo-front-end-util.js.map\n","// 支付宝sdk下载地址\r\nexport const URL_PATH = 'https://appx/web-view.min.js';\r\n","// 桥接对象,供外部使用\r\n\r\nexport const Bridge: {\r\n // 范围:wechat\r\n // 功能:请求授权\r\n // 参数:wechat\r\n authorize: any;\r\n // 范围:wechat\r\n // 功能:获取位置 参数:\r\n // wechat、\r\n getLocation: any;\r\n // 范围:wechat\r\n // 功能:打开地图\r\n // 参数:wechat\r\n openLocation: any;\r\n // 范围:wechat\r\n // 功能:开启设置\r\n // 参数:wechat\r\n openSetting: any;\r\n openURL: any;\r\n // 范围:wechat(不能跳转tab页)、客户端\r\n // 功能:跳转到某一页\r\n // 参数:wechat\r\n navigateTo: any;\r\n // 范围:wechat\r\n // 功能:发送消息(wechat小程序中只能在h5退出项目时才能触发)\r\n // 参数:wechat\r\n postMessage: any;\r\n // 范围:android、ios\r\n // 功能:获取token\r\n // 参数:无\r\n getToken: any;\r\n // 范围:wechat\r\n // 功能:跳转tab页\r\n // 参数:wechat\r\n switchTab: any;\r\n // 范围:客户端\r\n // 功能:进入订单详情页,库存页面,点击订单进入详情页\r\n // 参数:无\r\n gotoOrderDetail: any;\r\n // 范围:客户端\r\n // 功能:获取库存页面的区域\r\n // 参数:无\r\n getAreas: any;\r\n // 范围:客户端\r\n // 功能:返回上一级\r\n // 参数:无\r\n goBack: any;\r\n} = {\r\n authorize: undefined,\r\n getLocation: undefined,\r\n openLocation: undefined,\r\n openSetting: undefined,\r\n openURL: undefined,\r\n navigateTo: undefined,\r\n postMessage: undefined,\r\n getToken: undefined,\r\n switchTab: undefined,\r\n gotoOrderDetail: undefined,\r\n getAreas: undefined\r\n};\r\n","export async function getLocation(...args: any[]) {\r\n return new Promise((resolve, reject) => {\r\n my.getLocation({\r\n ...args,\r\n success: function (res: unknown) {\r\n resolve(res);\r\n },\r\n fail: function (err: unknown) {\r\n reject(err);\r\n }\r\n });\r\n });\r\n}\r\n","export async function openLocation(...args: any[]) {\r\n return new Promise((resolve, reject) => {\r\n my.openLocation({\r\n ...args,\r\n success: function (res: unknown) {\r\n resolve(res);\r\n },\r\n fail: function (err: unknown) {\r\n reject(err);\r\n }\r\n });\r\n });\r\n}\r\n","export async function navigateTo(...args: any[]) {\r\n return new Promise((resolve, reject) => {\r\n my.navigateTo({\r\n ...args,\r\n success: function (res: unknown) {\r\n resolve(res);\r\n },\r\n fail: function (err: unknown) {\r\n reject(err);\r\n }\r\n });\r\n });\r\n}\r\n","export async function postMessage(...args: any[]) {\r\n return new Promise((resolve, reject) => {\r\n my.postMessage({\r\n ...args,\r\n success: function (res: unknown) {\r\n resolve(res);\r\n },\r\n fail: function (err: unknown) {\r\n reject(err);\r\n }\r\n });\r\n });\r\n}\r\n","export function switchTab(url: string) {\r\n my.switchTab({\r\n url\r\n });\r\n}\r\n","import { Bridge } from '../../const';\r\n\r\nimport { getLocation } from './get-location';\r\nimport { openLocation } from './open-location';\r\nimport { navigateTo } from './navigate-to';\r\nimport { postMessage } from './post-message';\r\nimport { switchTab } from './switch-tab';\r\n\r\n// 在这里添加具体的需要暴露的方法名\r\nexport function register() {\r\n Bridge.getLocation = getLocation;\r\n Bridge.openLocation = openLocation;\r\n Bridge.navigateTo = navigateTo;\r\n Bridge.postMessage = postMessage;\r\n Bridge.switchTab = switchTab;\r\n}\r\n","import { downloadCdn } from 'mo-front-end-util';\r\nimport { URL_PATH } from './const';\r\nimport { register } from './register';\r\n\r\nexport async function init() {\r\n await downloadCdn(URL_PATH);\r\n\r\n register();\r\n}\r\n","// 支付宝sdk下载地址\r\nexport const URL_PATH = 'https://res.wx.qq.com/open/js/jweixin-1.6.0.js';\r\n","export async function getLocation(...args: any) {\r\n return new Promise((resolve, reject) => {\r\n wx.getLocation({\r\n ...args,\r\n success: function (res: unknown) {\r\n resolve(res);\r\n },\r\n fail: function (err: unknown) {\r\n reject(err);\r\n }\r\n });\r\n });\r\n}\r\n","export async function openLocation(...args: any) {\r\n return new Promise((resolve, reject) => {\r\n wx.openLocation({\r\n ...args,\r\n success: function (res: unknown) {\r\n resolve(res);\r\n },\r\n fail: function (err: unknown) {\r\n reject(err);\r\n }\r\n });\r\n });\r\n}\r\n","export async function postMessage(args: any) {\r\n return new Promise((resolve, reject) => {\r\n wx.miniProgram.postMessage({\r\n ...args,\r\n success: function (res: unknown) {\r\n resolve(res);\r\n },\r\n fail: function (err: unknown) {\r\n reject(err);\r\n }\r\n });\r\n });\r\n}\r\n","export async function navigateTo(args: any) {\r\n return new Promise((resolve, reject) => {\r\n wx.miniProgram.navigateTo({\r\n ...args,\r\n success: function (res: unknown) {\r\n resolve(res);\r\n },\r\n fail: function (err: unknown) {\r\n reject(err);\r\n }\r\n });\r\n });\r\n}\r\n","export function switchTab(url: string) {\r\n wx.miniProgram.switchTab(url);\r\n}\r\n","import { Bridge } from '../../const';\r\n\r\nimport { getLocation } from './get-location';\r\nimport { openLocation } from './open-location';\r\nimport { postMessage } from './post-message';\r\nimport { navigateTo } from './navigate-to';\r\nimport { switchTab } from './switch-tab';\r\n\r\nexport function register() {\r\n Bridge.getLocation = getLocation;\r\n Bridge.openLocation = openLocation;\r\n Bridge.postMessage = postMessage;\r\n Bridge.navigateTo = navigateTo;\r\n Bridge.switchTab = switchTab;\r\n}\r\n\r\nexport function notLoginRegister() {\r\n Bridge.postMessage = postMessage;\r\n Bridge.navigateTo = navigateTo;\r\n Bridge.switchTab = switchTab;\r\n}\r\n","import { downloadCdn } from 'mo-front-end-util';\r\nimport { URL_PATH } from './const';\r\nimport { register, notLoginRegister } from './register';\r\n\r\nasync function getConfig(arg: InitWxConfigType) {\r\n const urlParam = location.href.split('#')[0];\r\n\r\n return await fetch(`${arg.requestUrl}?url=${urlParam}`).then((response) => {\r\n return response.json();\r\n });\r\n\r\n // return await fetch(`${arg.requestUrl}?url=${urlParam}`, {\r\n // headers: {\r\n // token: arg.token,\r\n // 'Content-Type': 'application/json'\r\n // }\r\n // }).then((response) => {\r\n // return response.json();\r\n // });\r\n}\r\n\r\nfunction setConfig(arg: InitWxConfigType) {\r\n async function initConfig() {\r\n const configData = await getConfig(arg);\r\n wx.config({\r\n debug: false,\r\n appId: configData.data.appId,\r\n timestamp: configData.data.timestamp,\r\n nonceStr: configData.data.nonceStr,\r\n signature: configData.data.signature,\r\n jsApiList: [\r\n // 获取当前的地理位置、速度:\r\n // 微信小程序与支付宝同名\r\n 'getLocation',\r\n // 使用微信内置地图查看位置:\r\n // 微信小程序与支付宝同名\r\n 'openLocation',\r\n 'startRecord',\r\n 'chooseImage',\r\n 'scanQRCode'\r\n ]\r\n });\r\n }\r\n\r\n initConfig();\r\n\r\n // // wx.error只需要注册一次,每次失败间隔会重新初始化\r\n // wx.error(() => {\r\n // setTimeout(() => {\r\n // initConfig();\r\n // }, 1000 * 3);\r\n // });\r\n\r\n // 签名5min会过期,所以需要定时更新签名\r\n setInterval(\r\n async (res) => {\r\n console.log('js-sdk 重新初始化', res);\r\n initConfig();\r\n },\r\n 1000 * 60 * 4\r\n );\r\n\r\n return Promise.resolve();\r\n}\r\n\r\nasync function wcChatInitNotLogin() {\r\n await downloadCdn(URL_PATH);\r\n\r\n notLoginRegister();\r\n}\r\n\r\nexport async function init(arg: InitWxConfigType) {\r\n await downloadCdn(URL_PATH);\r\n await setConfig(arg);\r\n\r\n wx.ready(function () {\r\n register();\r\n });\r\n}\r\n\r\nexport { wcChatInitNotLogin };\r\n","/**\r\n * 使用 JSBridge 总结:\r\n * 1、跟 IOS 交互的时候,只需要且必须注册 iosFunction 方法即可,\r\n * 不能在 setupWebViewJavascriptBridge 中执行 bridge.init 方法,否则 IOS 无法调用到 H5 的注册函数;\r\n * 2、与安卓进行交互的时候\r\n * ①、使用 iosFunction,就可以实现 H5 调用 安卓的注册函数,但是安卓无法调用 H5 的注册函数,\r\n * 并且 H5 调用安卓成功后的回调函数也无法执行\r\n * ②、使用 androidFunction 并且要在 setupWebViewJavascriptBridge 中执行 bridge.init 方法,\r\n * 安卓才可以正常调用 H5 的回调函数,并且 H5 调用安卓成功后的回调函数也可以正常执行了\r\n */\r\n\r\n// @ts-nocheck\r\n\r\nimport { RUN_ENV } from 'mo-front-end-util';\r\n\r\nconst isAndroid = RUN_ENV.isAndroid;\r\n\r\n/**\r\n * Android 与安卓交互时:\r\n * 1、不调用这个函数安卓无法调用 H5 注册的事件函数;\r\n * 2、但是 H5 可以正常调用安卓注册的事件函数;\r\n * 3、还必须在 setupWebViewJavascriptBridge 中执行 bridge.init 方法,否则:\r\n * ①、安卓依然无法调用 H5 注册的事件函数\r\n * ①、H5 正常调用安卓事件函数后的回调函数无法正常执行\r\n *\r\n * @param {*} callback\r\n */\r\nconst androidFunction = (callback) => {\r\n if (window.WebViewJavascriptBridge) {\r\n callback(window.WebViewJavascriptBridge);\r\n } else {\r\n document.addEventListener(\r\n 'WebViewJavascriptBridgeReady',\r\n function () {\r\n callback(window.WebViewJavascriptBridge);\r\n },\r\n false\r\n );\r\n }\r\n};\r\n\r\n/**\r\n * IOS 与 IOS 交互时,使用这个函数即可,别的操作都不需要执行\r\n * @param {*} callback\r\n */\r\nconst iosFunction = (callback) => {\r\n if (window.WebViewJavascriptBridge) {\r\n return callback(window.WebViewJavascriptBridge);\r\n }\r\n if (window.WVJBCallbacks) {\r\n return window.WVJBCallbacks.push(callback);\r\n }\r\n window.WVJBCallbacks = [callback];\r\n const WVJBIframe = document.createElement('iframe');\r\n WVJBIframe.style.display = 'none';\r\n WVJBIframe.src = 'wvjbscheme://__BRIDGE_LOADED__';\r\n document.documentElement.appendChild(WVJBIframe);\r\n setTimeout(function () {\r\n document.documentElement.removeChild(WVJBIframe);\r\n }, 0);\r\n};\r\n\r\n/**\r\n * 注册 setupWebViewJavascriptBridge 方法\r\n * 之所以不将上面两个方法融合成一个方法,是因为放在一起,那么就只有 iosFunction 中相关的方法体生效\r\n */\r\nwindow.setupWebViewJavascriptBridge = isAndroid ? androidFunction : iosFunction;\r\n\r\n/**\r\n * 这里如果不做判断是不是安卓,而是直接就执行下面的方法,就会导致\r\n * 1、IOS 无法调用 H5 这边注册的事件函数\r\n * 2、H5 可以正常调用 IOS 这边的事件函数,并且 H5 的回调函数可以正常执行\r\n */\r\nif (isAndroid) {\r\n /**\r\n * 与安卓交互时,不调用这个函数会导致:\r\n * 1、H5 可以正常调用 安卓这边的事件函数,但是无法再调用到 H5 的回调函数\r\n *\r\n * 前提 setupWebViewJavascriptBridge 这个函数使用的是 androidFunction 这个,否则还是会导致上面 1 的现象出现\r\n */\r\n window.setupWebViewJavascriptBridge(function (bridge) {\r\n // 注册 H5 界面的默认接收函数(与安卓交互时,不注册这个事件无法接收回调函数)\r\n bridge.init(function (msg, responseCallback) {\r\n alert(msg);\r\n responseCallback('JS 返回给原生的消息内容');\r\n });\r\n });\r\n}\r\n","import './depend';\r\nimport { Bridge } from '../../const';\r\n\r\nexport async function init() {\r\n // @ts-ignore\r\n window.setupWebViewJavascriptBridge((bridge) => {\r\n Object.keys(Bridge).forEach((name) => {\r\n Bridge[name as keyof typeof Bridge] = function (toNativeParams: unknown) {\r\n return new Promise((resolve, reject) => {\r\n // 调用原生方法\r\n bridge.callHandler(\r\n 'sendToNative',\r\n // 传递给原生的参数\r\n {\r\n type: name,\r\n value: toNativeParams\r\n },\r\n (data: { type: string; value: any }) => {\r\n console.log('name2 fromNativeParams', data);\r\n // 原生返回回来的数据\r\n if (data.type === 'success') {\r\n resolve(data.value);\r\n } else {\r\n reject(data.value);\r\n }\r\n }\r\n );\r\n });\r\n };\r\n });\r\n });\r\n}\r\n","import { RUN_ENV } from 'mo-front-end-util';\r\nimport { init as alipayInit } from './sdk/alipay/index';\r\nimport { init as weChatInit, wcChatInitNotLogin } from './sdk/we-chat/index';\r\nimport { init as mobileInit } from './sdk/mobile/index';\r\nimport { Bridge } from './const';\r\n\r\nasync function initBridge(arg: void | InitWxConfigType) {\r\n if (RUN_ENV.isAlipayMini) {\r\n await alipayInit();\r\n } else if (RUN_ENV.isWeChatMini) {\r\n if (!arg || !arg.token) {\r\n await wcChatInitNotLogin();\r\n } else {\r\n await weChatInit(arg as InitWxConfigType);\r\n }\r\n } else {\r\n await mobileInit();\r\n }\r\n}\r\n\r\nexport { Bridge, initBridge };\r\n"],"names":["l","o","i","n","d","s","e","h","URL_PATH","Bridge","getLocation","args","resolve","reject","res","err","openLocation","navigateTo","postMessage","switchTab","url","register","init","downloadCdn","notLoginRegister","getConfig","arg","urlParam","response","setConfig","initConfig","configData","wcChatInitNotLogin","isAndroid","RUN_ENV","androidFunction","callback","iosFunction","WVJBIframe","bridge","msg","responseCallback","name","toNativeParams","data","initBridge","alipayInit","weChatInit","mobileInit"],"mappings":"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","x_google_ignoreList":[0]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "mo-h5-bridge",
3
3
  "private": false,
4
- "version": "0.0.2",
4
+ "version": "0.0.3",
5
5
  "type": "module",
6
6
  "main": "./dist/mo-h5-bridge.js",
7
7
  "types": "./dist/index.d.ts",