@wlydfe/flutter-bridge 0.0.6 → 0.0.7

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.
package/lib/index.js CHANGED
@@ -36,6 +36,8 @@ var AppBridge = null;
36
36
  var initBridgeCore = function () {
37
37
  // 全局回调ID和回调函数存储
38
38
  var cbId = 0;
39
+ // 全局回调池,存储「回调 ID → {resolve, reject}」的映射
40
+ // const cbs = {};
39
41
  var version = "1.0";
40
42
  // Promise resolve 映射表
41
43
  var promiseMap = new Map();
@@ -55,11 +57,14 @@ var initBridgeCore = function () {
55
57
  }
56
58
  return new Promise(function (resolve, reject) {
57
59
  // 生成唯一的回调 ID,用于匹配 Flutter 回调的结果
58
- var id = 'cb_' + (++cbId);
60
+ // 生成回调ID并注册resolve函数
61
+ var callbackId = 'cb_' + (++cbId);
62
+ promiseMap.set(callbackId, resolve);
63
+ // 发送消息到Flutter
59
64
  window.WLYDBridge.postMessage(JSON.stringify({
60
65
  type: type,
61
66
  data: data,
62
- callbackId: id, // 唯一回调 ID,Flutter 处理完会带回这个 ID
67
+ callbackId: callbackId, // 唯一回调 ID,Flutter 处理完会带回这个 ID
63
68
  version: version
64
69
  }));
65
70
  });
@@ -87,6 +92,7 @@ var initBridgeCore = function () {
87
92
  else {
88
93
  parsedData = data;
89
94
  }
95
+ console.log('resolveCallbackPromise', resolve);
90
96
  // 成功时返回标准格式
91
97
  resolve(parsedData);
92
98
  }
@@ -112,6 +118,7 @@ var invoke = function (type, params, format) {
112
118
  return AppBridge.invoke(type, params)
113
119
  .then(function (data) { return typeof format === 'function' ? format(data) : data; })
114
120
  .catch(function (err) {
121
+ console.log('invoke err', err);
115
122
  throw err;
116
123
  });
117
124
  };
@@ -132,8 +139,9 @@ var chooseImage = function (options) {
132
139
  // 获取定位
133
140
  var getLocation = function (options) {
134
141
  var success = options.success, fail = options.fail, complete = options.complete, restParams = __rest(options, ["success", "fail", "complete"]);
135
- invoke('getLocation', restParams).then(function (data) {
136
- if (data.latitude && data.longitude) {
142
+ invoke('getLocation', restParams).then(function (result) {
143
+ var data = result.data;
144
+ if (data && data.latitude && data.longitude) {
137
145
  success === null || success === void 0 ? void 0 : success(data);
138
146
  }
139
147
  else {
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/core/bridgeCore.ts","../src/api/chooseImage.ts","../src/api/getLocation.ts","../src/api/previewImage.ts","../src/api/login.ts","../src/api/navigateTo.ts","../src/api/wxShare.ts","../src/api/navigateBack.ts","../src/api/setNavigationBarTitle.ts","../src/lifecycle/types.ts","../src/lifecycle/apiLifecycle.ts","../src/index.ts"],"sourcesContent":["let AppBridge = null;\n\nexport const initBridgeCore = () => {\n // 全局回调ID和回调函数存储\n let cbId = 0;\n // 全局回调池,存储「回调 ID → {resolve, reject}」的映射\n const cbs = {};\n const version = \"1.0\";\n\n // Promise resolve 映射表\n const promiseMap = new Map<string, (value) => void>()\n\n /*\n 定义一个全局的 AppBridge 对象,提供 invoke 方法,用于 H5 调用 Flutter 暴露的原生 API,\n 核心是通过 Promise 来处理异步通信的结果回调.\n\n WLYDBridge: flutter 与 H5 约定的 bridge 名字\n */\n AppBridge = {\n invoke(type, data = {}) {\n //1. 检查 Flutter 桥接是否就绪(WLYDBridge 是 Flutter 注入的全局对象)\n if (!(window as any).WLYDBridge || typeof (window as any).WLYDBridge.postMessage !== 'function') {\n console.log(\"bridge not ready\");\n return Promise.reject(new Error('bridge not ready'));\n }\n return new Promise((resolve, reject) => {\n // 生成唯一的回调 ID,用于匹配 Flutter 回调的结果\n const id = 'cb_' + (++cbId);\n cbs[id] = { resolve, reject };\n (window as any).WLYDBridge.postMessage(JSON.stringify({\n type,\n data,\n callbackId: id,// 唯一回调 ID,Flutter 处理完会带回这个 ID\n version\n }));\n });\n }\n };\n\n // 初始化AppBridge \n // Flutter回调处理\n // native bridge 回传数据\n const resolveCallbackPromise = <T = unknown>(callbackId: string, data: unknown) => {\n const resolve = promiseMap.get(callbackId);\n\n if (resolve) {\n try {\n let parsedData;\n if (typeof data === 'string') {\n try {\n parsedData = JSON.parse(data)\n } catch (parseError) {\n parsedData = {\n success: false,\n message: `JSON解析失败: ${parseError instanceof Error ? parseError.message : 'Unknown error'}`,\n }\n }\n } else {\n parsedData = data\n }\n\n // 成功时返回标准格式\n resolve(parsedData)\n } catch (error) {\n // 异常时返回错误格式\n resolve({\n success: false,\n message: error instanceof Error ? error.message : 'Unknown error',\n })\n } finally {\n // 清理映射表\n promiseMap.delete(callbackId)\n }\n }\n }\n\n (window as any).resolveFlutterPromise = <T = unknown>(callbackId: string, data: unknown): void => {\n resolveCallbackPromise<T>(callbackId, data)\n }\n}\n\n// 通用桥接调用封装\nexport const invoke = (type, params?: any, format?) => {\n\treturn AppBridge.invoke(type, params)\n\t\t.then(data => typeof format === 'function' ? format(data) : data)\n\t\t.catch(err => {\n\t\t\tthrow err;\n\t\t});\n}","import { invoke } from \"../core/bridgeCore\";\nimport { BaseOptions } from \"../types\";\n\nexport interface ChooseImageOptions extends Omit<BaseOptions, 'success'> {\n count: number;\n sizeType: ['original', 'compressed'];\n sourceType: ['album', 'camera'];\n success?: (result: {\n tempFilePaths: string[];\n tempFiles: {\n size: number;\n type: string;\n }[];\n }) => void;\n}\n\n// 选择图片\nexport const chooseImage = (options: ChooseImageOptions) => {\n const { success, fail, complete, ...restParams } = options;\n invoke('chooseImage', restParams).then(data => {\n\t\tif (data.success) {\n\t\t\tsuccess?.(data);\n\t\t} else {\n\t\t\tfail?.();\n\t\t}\n\t}).catch(fail).finally(complete);\n}\n","import { invoke } from \"../core/bridgeCore\";\nimport { BaseOptions } from \"../types\";\n\nexport interface GetLocationOptions extends Omit<BaseOptions, 'success'> {\n\tsuccess?: (result: {\n\t\tlatitude: number;\n\t\tlongitude: number;\n\t}) => void;\n}\n \n// 获取定位\nexport const getLocation = (options: GetLocationOptions) => {\n\tconst { success, fail, complete, ...restParams } = options;\n\tinvoke('getLocation', restParams).then(data => {\n\t\tif (data.latitude && data.longitude) {\n\t\t\tsuccess?.(data);\n\t\t} else {\n\t\t\tfail?.();\n\t\t}\n\t}).catch(fail).finally(complete);\n}\n","import { invoke } from \"../core/bridgeCore\";\nimport { BaseOptions } from \"../types\";\n\nexport interface PreviewImageOptions extends BaseOptions {\n\turls: string[];\n}\n\n/**\n * 预览图片\n * @param options 预览图片参数\n * @param options.urls 图片URL列表\n * @param options.success 成功回调\n * @param options.fail 失败回调\n * @param options.complete 完成回调\n * @returns \n */\nexport const previewImage = (options: PreviewImageOptions) => {\n\tif (!options.urls || options.urls.length === 0) {\n\t\toptions.fail?.();\n\t\treturn;\n\t}\n\tinvoke('previewImage', {\n\t\turls: options.urls\n\t}).then(options.success)\n\t\t.catch(options.fail)\n\t\t.finally(options.complete);\n}","import { invoke } from \"../core/bridgeCore\";\nimport { BaseOptions } from \"../types\";\nexport interface LoginOptions extends Omit<BaseOptions, 'success'> {\n\tsuccess?: (result: {\n\t\tloginSuccess: boolean;\n\t\tuserId: string;\n\t}) => void;\n}\n\nexport const login = (options: LoginOptions) => {\n\tconst { success, fail, complete, ...restParams } = options;\n\tinvoke('login', restParams).then(data => {\n\t\tif (data.success) {\n\t\t\tsuccess?.(data);\n\t\t} else {\n\t\t\tfail?.();\n\t\t}\n\t}).catch(fail).finally(complete);\n}","import { invoke } from \"../core/bridgeCore\";\nimport { BaseOptions } from \"../types\";\n\nexport interface NavigateToOptions extends BaseOptions {\n\troute: string;\n\tparams: any;\n}\n\nexport const navigateTo = (options: NavigateToOptions) => {\n\tconst { success, fail, complete, ...restParams } = options;\n\tinvoke('navigateTo', restParams).then(data => {\n\t\tif (data.success) {\n\t\t\tsuccess?.();\n\t\t} else {\n\t\t\tfail?.();\n\t\t}\n\t}).catch(fail).finally(complete);\n}","import { invoke } from \"../core/bridgeCore\";\nimport { BaseOptions } from \"../types\";\n\nexport interface WxShareOptions extends BaseOptions {\n\ttitle: string;\n\turl: string;\n\tshareType: ['appMessage', 'timeline', 'favorite'];\n}\n// 分享\nexport const wxShare = (options: WxShareOptions) => {\n\tconst { success, fail, complete, ...restParams } = options;\n\tinvoke('wxShare', restParams).then(data => {\n\t\tif (data.success) {\n\t\t\tsuccess?.();\n\t\t} else {\n\t\t\tfail?.();\n\t\t}\n\t}).catch(fail).finally(complete);\n}","import { invoke } from \"../core/bridgeCore\";\nimport { BaseOptions } from \"../types\";\n\n// 返回\nexport const navigateBack = (options?: BaseOptions) => {\n const { success, fail, complete, ...restParams } = options;\n\tinvoke('back', restParams).then(data => {\n\t\tconsole.log('navigateBack data', data);\n\t\t// if (data.success) {\n\t\t// \tsuccess?.();\n\t\t// } else {\n\t\t// \tfail?.();\n\t\t// }\n\t}).catch(fail).finally(complete);\n // .then(() => showToast('返回已触发', 2000, 'success'));\n}","import { invoke } from \"../core/bridgeCore\";\nimport { BaseOptions } from \"../types\";\n\nexport interface NavigationBarTitleOptions extends BaseOptions {\n\ttitle: string;\n}\n\n/**\n * 预览图片\n * @param options 预览图片参数\n * @param options.urls 图片URL列表\n * @param options.success 成功回调\n * @param options.fail 失败回调\n * @param options.complete 完成回调\n * @returns \n */\nexport const setNavigationBarTitle = (options: NavigationBarTitleOptions) => {\n\tif (!options.title) {\n\t\toptions.fail?.();\n\t\treturn;\n\t}\n\tinvoke('updateNavTitle', {\n\t\ttitle: options.title\n\t}).then(options.success)\n\t\t.catch(options.fail)\n\t\t.finally(options.complete);\n}","export enum LifecycleHooks {\n PAGE_CREATED = 'onPageCreated',\n RESUME = 'onResume',\n PAUSE = 'onPause',\n LOAD = 'onLoad',\n SHOW = 'onShow',\n HIDE = 'onHide',\n DESTROY = 'onDestroy'\n}","import { LifecycleHooks } from \"./types\";\n\nconst __lifecycleFunctionMap = {};\n\n// 1. 注册全局监听函数,接收 Flutter 生命周期事件\n(window as any).flutterLifeCycleListener = function(eventName) {\n if (__lifecycleFunctionMap[eventName]) {\n __lifecycleFunctionMap[eventName].forEach(hook => hook())\n }\n};\n\nconst createLifeCycleHook = (\n lifecycle: string\n ) =>\n (\n hook: () => void,\n ): void => {\n __lifecycleFunctionMap[lifecycle] = __lifecycleFunctionMap[lifecycle] || []\n __lifecycleFunctionMap[lifecycle].push(hook)\n }\n\nexport const onPageCreated = createLifeCycleHook(LifecycleHooks.PAGE_CREATED)\nexport const onResume = createLifeCycleHook(LifecycleHooks.RESUME)\nexport const onPause = createLifeCycleHook(LifecycleHooks.PAUSE)\nexport const onLoad = createLifeCycleHook(LifecycleHooks.LOAD)\nexport const onShow = createLifeCycleHook(LifecycleHooks.SHOW)\nexport const onHide = createLifeCycleHook(LifecycleHooks.HIDE)\nexport const onDestroy = createLifeCycleHook(LifecycleHooks.DESTROY)","import * as api from './api'\nimport { initBridgeCore } from './core/bridgeCore'\nimport { onPageCreated } from './lifecycle/apiLifecycle'\n\nconst initBridge = () => {\n initBridgeCore()\n}\n\nonPageCreated(() => {\n if (!(window as any).uni) {\n (window as any).uni = {}\n }\n const uniApi: any = (window as any).uni\n Object.assign(uniApi, api)\n})\n\ninitBridge()\n\nexport * from './api'\nexport * from './lifecycle/apiLifecycle'"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/core/bridgeCore.ts","../src/api/chooseImage.ts","../src/api/getLocation.ts","../src/api/previewImage.ts","../src/api/login.ts","../src/api/navigateTo.ts","../src/api/wxShare.ts","../src/api/navigateBack.ts","../src/api/setNavigationBarTitle.ts","../src/lifecycle/types.ts","../src/lifecycle/apiLifecycle.ts","../src/index.ts"],"sourcesContent":["let AppBridge = null;\n\nexport const initBridgeCore = () => {\n // 全局回调ID和回调函数存储\n let cbId = 0;\n // 全局回调池,存储「回调 ID → {resolve, reject}」的映射\n // const cbs = {};\n const version = \"1.0\";\n\n // Promise resolve 映射表\n const promiseMap = new Map<string, (value) => void>()\n\n /*\n 定义一个全局的 AppBridge 对象,提供 invoke 方法,用于 H5 调用 Flutter 暴露的原生 API,\n 核心是通过 Promise 来处理异步通信的结果回调.\n\n WLYDBridge: flutter 与 H5 约定的 bridge 名字\n */\n AppBridge = {\n invoke(type, data = {}) {\n //1. 检查 Flutter 桥接是否就绪(WLYDBridge 是 Flutter 注入的全局对象)\n if (!(window as any).WLYDBridge || typeof (window as any).WLYDBridge.postMessage !== 'function') {\n console.log(\"bridge not ready\");\n return Promise.reject(new Error('bridge not ready'));\n }\n return new Promise((resolve, reject) => {\n // 生成唯一的回调 ID,用于匹配 Flutter 回调的结果\n // 生成回调ID并注册resolve函数\n const callbackId = 'cb_' + (++cbId);\n promiseMap.set(callbackId, resolve as (value: any) => void);\n\n // 发送消息到Flutter\n\n (window as any).WLYDBridge.postMessage(\n JSON.stringify({\n type,\n data,\n callbackId,// 唯一回调 ID,Flutter 处理完会带回这个 ID\n version\n }\n ))\n });\n }\n };\n\n // 初始化AppBridge \n // Flutter回调处理\n // native bridge 回传数据\n const resolveCallbackPromise = <T = unknown>(callbackId: string, data: unknown) => {\n const resolve = promiseMap.get(callbackId);\n if (resolve) {\n try {\n let parsedData;\n if (typeof data === 'string') {\n try {\n parsedData = JSON.parse(data)\n } catch (parseError) {\n parsedData = {\n success: false,\n message: `JSON解析失败: ${parseError instanceof Error ? parseError.message : 'Unknown error'}`,\n }\n }\n } else {\n parsedData = data\n }\n console.log('resolveCallbackPromise', resolve);\n // 成功时返回标准格式\n resolve(parsedData)\n } catch (error) {\n // 异常时返回错误格式\n resolve({\n success: false,\n message: error instanceof Error ? error.message : 'Unknown error',\n })\n } finally {\n // 清理映射表\n promiseMap.delete(callbackId)\n }\n }\n }\n\n (window as any).resolveFlutterPromise = <T = unknown>(callbackId: string, data: unknown): void => {\n resolveCallbackPromise<T>(callbackId, data)\n }\n}\n\n// 通用桥接调用封装\nexport const invoke = (type, params?: any, format?) => {\n\treturn AppBridge.invoke(type, params)\n\t\t.then(data => typeof format === 'function' ? format(data) : data)\n\t\t.catch(err => {\n console.log('invoke err', err);\n\t\t\tthrow err;\n\t\t});\n}","import { invoke } from \"../core/bridgeCore\";\nimport { BaseOptions } from \"../types\";\n\nexport interface ChooseImageOptions extends Omit<BaseOptions, 'success'> {\n count: number;\n sizeType: ['original', 'compressed'];\n sourceType: ['album', 'camera'];\n success?: (result: {\n tempFilePaths: string[];\n tempFiles: {\n size: number;\n type: string;\n }[];\n }) => void;\n}\n\n// 选择图片\nexport const chooseImage = (options: ChooseImageOptions) => {\n const { success, fail, complete, ...restParams } = options;\n invoke('chooseImage', restParams).then(data => {\n\t\tif (data.success) {\n\t\t\tsuccess?.(data);\n\t\t} else {\n\t\t\tfail?.();\n\t\t}\n\t}).catch(fail).finally(complete);\n}\n","import { invoke } from \"../core/bridgeCore\";\nimport { BaseOptions } from \"../types\";\n\nexport interface GetLocationOptions extends Omit<BaseOptions, 'success'> {\n\tsuccess?: (result: {\n\t\tlatitude: number;\n\t\tlongitude: number;\n\t}) => void;\n}\n \n// 获取定位\nexport const getLocation = (options: GetLocationOptions) => {\n\tconst { success, fail, complete, ...restParams } = options;\n\tinvoke('getLocation', restParams).then(result => {\n\t\tconst { data } = result;\n\t\tif (data && data.latitude && data.longitude) {\n\t\t\tsuccess?.(data);\n\t\t} else {\n\t\t\tfail?.();\n\t\t}\n\t}).catch(fail).finally(complete);\n}\n","import { invoke } from \"../core/bridgeCore\";\nimport { BaseOptions } from \"../types\";\n\nexport interface PreviewImageOptions extends BaseOptions {\n\turls: string[];\n}\n\n/**\n * 预览图片\n * @param options 预览图片参数\n * @param options.urls 图片URL列表\n * @param options.success 成功回调\n * @param options.fail 失败回调\n * @param options.complete 完成回调\n * @returns \n */\nexport const previewImage = (options: PreviewImageOptions) => {\n\tif (!options.urls || options.urls.length === 0) {\n\t\toptions.fail?.();\n\t\treturn;\n\t}\n\tinvoke('previewImage', {\n\t\turls: options.urls\n\t}).then(options.success)\n\t\t.catch(options.fail)\n\t\t.finally(options.complete);\n}","import { invoke } from \"../core/bridgeCore\";\nimport { BaseOptions } from \"../types\";\nexport interface LoginOptions extends Omit<BaseOptions, 'success'> {\n\tsuccess?: (result: {\n\t\tloginSuccess: boolean;\n\t\tuserId: string;\n\t}) => void;\n}\n\nexport const login = (options: LoginOptions) => {\n\tconst { success, fail, complete, ...restParams } = options;\n\tinvoke('login', restParams).then(data => {\n\t\tif (data.success) {\n\t\t\tsuccess?.(data);\n\t\t} else {\n\t\t\tfail?.();\n\t\t}\n\t}).catch(fail).finally(complete);\n}","import { invoke } from \"../core/bridgeCore\";\nimport { BaseOptions } from \"../types\";\n\nexport interface NavigateToOptions extends BaseOptions {\n\troute: string;\n\tparams: any;\n}\n\nexport const navigateTo = (options: NavigateToOptions) => {\n\tconst { success, fail, complete, ...restParams } = options;\n\tinvoke('navigateTo', restParams).then(data => {\n\t\tif (data.success) {\n\t\t\tsuccess?.();\n\t\t} else {\n\t\t\tfail?.();\n\t\t}\n\t}).catch(fail).finally(complete);\n}","import { invoke } from \"../core/bridgeCore\";\nimport { BaseOptions } from \"../types\";\n\nexport interface WxShareOptions extends BaseOptions {\n\ttitle: string;\n\turl: string;\n\tshareType: ['appMessage', 'timeline', 'favorite'];\n}\n// 分享\nexport const wxShare = (options: WxShareOptions) => {\n\tconst { success, fail, complete, ...restParams } = options;\n\tinvoke('wxShare', restParams).then(data => {\n\t\tif (data.success) {\n\t\t\tsuccess?.();\n\t\t} else {\n\t\t\tfail?.();\n\t\t}\n\t}).catch(fail).finally(complete);\n}","import { invoke } from \"../core/bridgeCore\";\nimport { BaseOptions } from \"../types\";\n\n// 返回\nexport const navigateBack = (options?: BaseOptions) => {\n const { success, fail, complete, ...restParams } = options;\n\tinvoke('back', restParams).then(data => {\n\t\tconsole.log('navigateBack data', data);\n\t\t// if (data.success) {\n\t\t// \tsuccess?.();\n\t\t// } else {\n\t\t// \tfail?.();\n\t\t// }\n\t}).catch(fail).finally(complete);\n // .then(() => showToast('返回已触发', 2000, 'success'));\n}","import { invoke } from \"../core/bridgeCore\";\nimport { BaseOptions } from \"../types\";\n\nexport interface NavigationBarTitleOptions extends BaseOptions {\n\ttitle: string;\n}\n\n/**\n * 预览图片\n * @param options 预览图片参数\n * @param options.urls 图片URL列表\n * @param options.success 成功回调\n * @param options.fail 失败回调\n * @param options.complete 完成回调\n * @returns \n */\nexport const setNavigationBarTitle = (options: NavigationBarTitleOptions) => {\n\tif (!options.title) {\n\t\toptions.fail?.();\n\t\treturn;\n\t}\n\tinvoke('updateNavTitle', {\n\t\ttitle: options.title\n\t}).then(options.success)\n\t\t.catch(options.fail)\n\t\t.finally(options.complete);\n}","export enum LifecycleHooks {\n PAGE_CREATED = 'onPageCreated',\n RESUME = 'onResume',\n PAUSE = 'onPause',\n LOAD = 'onLoad',\n SHOW = 'onShow',\n HIDE = 'onHide',\n DESTROY = 'onDestroy'\n}","import { LifecycleHooks } from \"./types\";\n\nconst __lifecycleFunctionMap = {};\n\n// 1. 注册全局监听函数,接收 Flutter 生命周期事件\n(window as any).flutterLifeCycleListener = function(eventName) {\n if (__lifecycleFunctionMap[eventName]) {\n __lifecycleFunctionMap[eventName].forEach(hook => hook())\n }\n};\n\nconst createLifeCycleHook = (\n lifecycle: string\n ) =>\n (\n hook: () => void,\n ): void => {\n __lifecycleFunctionMap[lifecycle] = __lifecycleFunctionMap[lifecycle] || []\n __lifecycleFunctionMap[lifecycle].push(hook)\n }\n\nexport const onPageCreated = createLifeCycleHook(LifecycleHooks.PAGE_CREATED)\nexport const onResume = createLifeCycleHook(LifecycleHooks.RESUME)\nexport const onPause = createLifeCycleHook(LifecycleHooks.PAUSE)\nexport const onLoad = createLifeCycleHook(LifecycleHooks.LOAD)\nexport const onShow = createLifeCycleHook(LifecycleHooks.SHOW)\nexport const onHide = createLifeCycleHook(LifecycleHooks.HIDE)\nexport const onDestroy = createLifeCycleHook(LifecycleHooks.DESTROY)","import * as api from './api'\nimport { initBridgeCore } from './core/bridgeCore'\nimport { onPageCreated } from './lifecycle/apiLifecycle'\n\nconst initBridge = () => {\n initBridgeCore()\n}\n\nonPageCreated(() => {\n if (!(window as any).uni) {\n (window as any).uni = {}\n }\n const uniApi: any = (window as any).uni\n Object.assign(uniApi, api)\n})\n\ninitBridge()\n\nexport * from './api'\nexport * from './lifecycle/apiLifecycle'"],"names":[],"mappings":"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"}
package/lib/index.umd.js CHANGED
@@ -42,6 +42,8 @@
42
42
  var initBridgeCore = function () {
43
43
  // 全局回调ID和回调函数存储
44
44
  var cbId = 0;
45
+ // 全局回调池,存储「回调 ID → {resolve, reject}」的映射
46
+ // const cbs = {};
45
47
  var version = "1.0";
46
48
  // Promise resolve 映射表
47
49
  var promiseMap = new Map();
@@ -61,11 +63,14 @@
61
63
  }
62
64
  return new Promise(function (resolve, reject) {
63
65
  // 生成唯一的回调 ID,用于匹配 Flutter 回调的结果
64
- var id = 'cb_' + (++cbId);
66
+ // 生成回调ID并注册resolve函数
67
+ var callbackId = 'cb_' + (++cbId);
68
+ promiseMap.set(callbackId, resolve);
69
+ // 发送消息到Flutter
65
70
  window.WLYDBridge.postMessage(JSON.stringify({
66
71
  type: type,
67
72
  data: data,
68
- callbackId: id, // 唯一回调 ID,Flutter 处理完会带回这个 ID
73
+ callbackId: callbackId, // 唯一回调 ID,Flutter 处理完会带回这个 ID
69
74
  version: version
70
75
  }));
71
76
  });
@@ -93,6 +98,7 @@
93
98
  else {
94
99
  parsedData = data;
95
100
  }
101
+ console.log('resolveCallbackPromise', resolve);
96
102
  // 成功时返回标准格式
97
103
  resolve(parsedData);
98
104
  }
@@ -118,6 +124,7 @@
118
124
  return AppBridge.invoke(type, params)
119
125
  .then(function (data) { return typeof format === 'function' ? format(data) : data; })
120
126
  .catch(function (err) {
127
+ console.log('invoke err', err);
121
128
  throw err;
122
129
  });
123
130
  };
@@ -138,8 +145,9 @@
138
145
  // 获取定位
139
146
  var getLocation = function (options) {
140
147
  var success = options.success, fail = options.fail, complete = options.complete, restParams = __rest(options, ["success", "fail", "complete"]);
141
- invoke('getLocation', restParams).then(function (data) {
142
- if (data.latitude && data.longitude) {
148
+ invoke('getLocation', restParams).then(function (result) {
149
+ var data = result.data;
150
+ if (data && data.latitude && data.longitude) {
143
151
  success === null || success === void 0 ? void 0 : success(data);
144
152
  }
145
153
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"index.umd.js","sources":["../src/core/bridgeCore.ts","../src/api/chooseImage.ts","../src/api/getLocation.ts","../src/api/previewImage.ts","../src/api/login.ts","../src/api/navigateTo.ts","../src/api/wxShare.ts","../src/api/navigateBack.ts","../src/api/setNavigationBarTitle.ts","../src/lifecycle/types.ts","../src/lifecycle/apiLifecycle.ts","../src/index.ts"],"sourcesContent":["let AppBridge = null;\n\nexport const initBridgeCore = () => {\n // 全局回调ID和回调函数存储\n let cbId = 0;\n // 全局回调池,存储「回调 ID → {resolve, reject}」的映射\n const cbs = {};\n const version = \"1.0\";\n\n // Promise resolve 映射表\n const promiseMap = new Map<string, (value) => void>()\n\n /*\n 定义一个全局的 AppBridge 对象,提供 invoke 方法,用于 H5 调用 Flutter 暴露的原生 API,\n 核心是通过 Promise 来处理异步通信的结果回调.\n\n WLYDBridge: flutter 与 H5 约定的 bridge 名字\n */\n AppBridge = {\n invoke(type, data = {}) {\n //1. 检查 Flutter 桥接是否就绪(WLYDBridge 是 Flutter 注入的全局对象)\n if (!(window as any).WLYDBridge || typeof (window as any).WLYDBridge.postMessage !== 'function') {\n console.log(\"bridge not ready\");\n return Promise.reject(new Error('bridge not ready'));\n }\n return new Promise((resolve, reject) => {\n // 生成唯一的回调 ID,用于匹配 Flutter 回调的结果\n const id = 'cb_' + (++cbId);\n cbs[id] = { resolve, reject };\n (window as any).WLYDBridge.postMessage(JSON.stringify({\n type,\n data,\n callbackId: id,// 唯一回调 ID,Flutter 处理完会带回这个 ID\n version\n }));\n });\n }\n };\n\n // 初始化AppBridge \n // Flutter回调处理\n // native bridge 回传数据\n const resolveCallbackPromise = <T = unknown>(callbackId: string, data: unknown) => {\n const resolve = promiseMap.get(callbackId);\n\n if (resolve) {\n try {\n let parsedData;\n if (typeof data === 'string') {\n try {\n parsedData = JSON.parse(data)\n } catch (parseError) {\n parsedData = {\n success: false,\n message: `JSON解析失败: ${parseError instanceof Error ? parseError.message : 'Unknown error'}`,\n }\n }\n } else {\n parsedData = data\n }\n\n // 成功时返回标准格式\n resolve(parsedData)\n } catch (error) {\n // 异常时返回错误格式\n resolve({\n success: false,\n message: error instanceof Error ? error.message : 'Unknown error',\n })\n } finally {\n // 清理映射表\n promiseMap.delete(callbackId)\n }\n }\n }\n\n (window as any).resolveFlutterPromise = <T = unknown>(callbackId: string, data: unknown): void => {\n resolveCallbackPromise<T>(callbackId, data)\n }\n}\n\n// 通用桥接调用封装\nexport const invoke = (type, params?: any, format?) => {\n\treturn AppBridge.invoke(type, params)\n\t\t.then(data => typeof format === 'function' ? format(data) : data)\n\t\t.catch(err => {\n\t\t\tthrow err;\n\t\t});\n}","import { invoke } from \"../core/bridgeCore\";\nimport { BaseOptions } from \"../types\";\n\nexport interface ChooseImageOptions extends Omit<BaseOptions, 'success'> {\n count: number;\n sizeType: ['original', 'compressed'];\n sourceType: ['album', 'camera'];\n success?: (result: {\n tempFilePaths: string[];\n tempFiles: {\n size: number;\n type: string;\n }[];\n }) => void;\n}\n\n// 选择图片\nexport const chooseImage = (options: ChooseImageOptions) => {\n const { success, fail, complete, ...restParams } = options;\n invoke('chooseImage', restParams).then(data => {\n\t\tif (data.success) {\n\t\t\tsuccess?.(data);\n\t\t} else {\n\t\t\tfail?.();\n\t\t}\n\t}).catch(fail).finally(complete);\n}\n","import { invoke } from \"../core/bridgeCore\";\nimport { BaseOptions } from \"../types\";\n\nexport interface GetLocationOptions extends Omit<BaseOptions, 'success'> {\n\tsuccess?: (result: {\n\t\tlatitude: number;\n\t\tlongitude: number;\n\t}) => void;\n}\n \n// 获取定位\nexport const getLocation = (options: GetLocationOptions) => {\n\tconst { success, fail, complete, ...restParams } = options;\n\tinvoke('getLocation', restParams).then(data => {\n\t\tif (data.latitude && data.longitude) {\n\t\t\tsuccess?.(data);\n\t\t} else {\n\t\t\tfail?.();\n\t\t}\n\t}).catch(fail).finally(complete);\n}\n","import { invoke } from \"../core/bridgeCore\";\nimport { BaseOptions } from \"../types\";\n\nexport interface PreviewImageOptions extends BaseOptions {\n\turls: string[];\n}\n\n/**\n * 预览图片\n * @param options 预览图片参数\n * @param options.urls 图片URL列表\n * @param options.success 成功回调\n * @param options.fail 失败回调\n * @param options.complete 完成回调\n * @returns \n */\nexport const previewImage = (options: PreviewImageOptions) => {\n\tif (!options.urls || options.urls.length === 0) {\n\t\toptions.fail?.();\n\t\treturn;\n\t}\n\tinvoke('previewImage', {\n\t\turls: options.urls\n\t}).then(options.success)\n\t\t.catch(options.fail)\n\t\t.finally(options.complete);\n}","import { invoke } from \"../core/bridgeCore\";\nimport { BaseOptions } from \"../types\";\nexport interface LoginOptions extends Omit<BaseOptions, 'success'> {\n\tsuccess?: (result: {\n\t\tloginSuccess: boolean;\n\t\tuserId: string;\n\t}) => void;\n}\n\nexport const login = (options: LoginOptions) => {\n\tconst { success, fail, complete, ...restParams } = options;\n\tinvoke('login', restParams).then(data => {\n\t\tif (data.success) {\n\t\t\tsuccess?.(data);\n\t\t} else {\n\t\t\tfail?.();\n\t\t}\n\t}).catch(fail).finally(complete);\n}","import { invoke } from \"../core/bridgeCore\";\nimport { BaseOptions } from \"../types\";\n\nexport interface NavigateToOptions extends BaseOptions {\n\troute: string;\n\tparams: any;\n}\n\nexport const navigateTo = (options: NavigateToOptions) => {\n\tconst { success, fail, complete, ...restParams } = options;\n\tinvoke('navigateTo', restParams).then(data => {\n\t\tif (data.success) {\n\t\t\tsuccess?.();\n\t\t} else {\n\t\t\tfail?.();\n\t\t}\n\t}).catch(fail).finally(complete);\n}","import { invoke } from \"../core/bridgeCore\";\nimport { BaseOptions } from \"../types\";\n\nexport interface WxShareOptions extends BaseOptions {\n\ttitle: string;\n\turl: string;\n\tshareType: ['appMessage', 'timeline', 'favorite'];\n}\n// 分享\nexport const wxShare = (options: WxShareOptions) => {\n\tconst { success, fail, complete, ...restParams } = options;\n\tinvoke('wxShare', restParams).then(data => {\n\t\tif (data.success) {\n\t\t\tsuccess?.();\n\t\t} else {\n\t\t\tfail?.();\n\t\t}\n\t}).catch(fail).finally(complete);\n}","import { invoke } from \"../core/bridgeCore\";\nimport { BaseOptions } from \"../types\";\n\n// 返回\nexport const navigateBack = (options?: BaseOptions) => {\n const { success, fail, complete, ...restParams } = options;\n\tinvoke('back', restParams).then(data => {\n\t\tconsole.log('navigateBack data', data);\n\t\t// if (data.success) {\n\t\t// \tsuccess?.();\n\t\t// } else {\n\t\t// \tfail?.();\n\t\t// }\n\t}).catch(fail).finally(complete);\n // .then(() => showToast('返回已触发', 2000, 'success'));\n}","import { invoke } from \"../core/bridgeCore\";\nimport { BaseOptions } from \"../types\";\n\nexport interface NavigationBarTitleOptions extends BaseOptions {\n\ttitle: string;\n}\n\n/**\n * 预览图片\n * @param options 预览图片参数\n * @param options.urls 图片URL列表\n * @param options.success 成功回调\n * @param options.fail 失败回调\n * @param options.complete 完成回调\n * @returns \n */\nexport const setNavigationBarTitle = (options: NavigationBarTitleOptions) => {\n\tif (!options.title) {\n\t\toptions.fail?.();\n\t\treturn;\n\t}\n\tinvoke('updateNavTitle', {\n\t\ttitle: options.title\n\t}).then(options.success)\n\t\t.catch(options.fail)\n\t\t.finally(options.complete);\n}","export enum LifecycleHooks {\n PAGE_CREATED = 'onPageCreated',\n RESUME = 'onResume',\n PAUSE = 'onPause',\n LOAD = 'onLoad',\n SHOW = 'onShow',\n HIDE = 'onHide',\n DESTROY = 'onDestroy'\n}","import { LifecycleHooks } from \"./types\";\n\nconst __lifecycleFunctionMap = {};\n\n// 1. 注册全局监听函数,接收 Flutter 生命周期事件\n(window as any).flutterLifeCycleListener = function(eventName) {\n if (__lifecycleFunctionMap[eventName]) {\n __lifecycleFunctionMap[eventName].forEach(hook => hook())\n }\n};\n\nconst createLifeCycleHook = (\n lifecycle: string\n ) =>\n (\n hook: () => void,\n ): void => {\n __lifecycleFunctionMap[lifecycle] = __lifecycleFunctionMap[lifecycle] || []\n __lifecycleFunctionMap[lifecycle].push(hook)\n }\n\nexport const onPageCreated = createLifeCycleHook(LifecycleHooks.PAGE_CREATED)\nexport const onResume = createLifeCycleHook(LifecycleHooks.RESUME)\nexport const onPause = createLifeCycleHook(LifecycleHooks.PAUSE)\nexport const onLoad = createLifeCycleHook(LifecycleHooks.LOAD)\nexport const onShow = createLifeCycleHook(LifecycleHooks.SHOW)\nexport const onHide = createLifeCycleHook(LifecycleHooks.HIDE)\nexport const onDestroy = createLifeCycleHook(LifecycleHooks.DESTROY)","import * as api from './api'\nimport { initBridgeCore } from './core/bridgeCore'\nimport { onPageCreated } from './lifecycle/apiLifecycle'\n\nconst initBridge = () => {\n initBridgeCore()\n}\n\nonPageCreated(() => {\n if (!(window as any).uni) {\n (window as any).uni = {}\n }\n const uniApi: any = (window as any).uni\n Object.assign(uniApi, api)\n})\n\ninitBridge()\n\nexport * from './api'\nexport * from './lifecycle/apiLifecycle'"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.umd.js","sources":["../src/core/bridgeCore.ts","../src/api/chooseImage.ts","../src/api/getLocation.ts","../src/api/previewImage.ts","../src/api/login.ts","../src/api/navigateTo.ts","../src/api/wxShare.ts","../src/api/navigateBack.ts","../src/api/setNavigationBarTitle.ts","../src/lifecycle/types.ts","../src/lifecycle/apiLifecycle.ts","../src/index.ts"],"sourcesContent":["let AppBridge = null;\n\nexport const initBridgeCore = () => {\n // 全局回调ID和回调函数存储\n let cbId = 0;\n // 全局回调池,存储「回调 ID → {resolve, reject}」的映射\n // const cbs = {};\n const version = \"1.0\";\n\n // Promise resolve 映射表\n const promiseMap = new Map<string, (value) => void>()\n\n /*\n 定义一个全局的 AppBridge 对象,提供 invoke 方法,用于 H5 调用 Flutter 暴露的原生 API,\n 核心是通过 Promise 来处理异步通信的结果回调.\n\n WLYDBridge: flutter 与 H5 约定的 bridge 名字\n */\n AppBridge = {\n invoke(type, data = {}) {\n //1. 检查 Flutter 桥接是否就绪(WLYDBridge 是 Flutter 注入的全局对象)\n if (!(window as any).WLYDBridge || typeof (window as any).WLYDBridge.postMessage !== 'function') {\n console.log(\"bridge not ready\");\n return Promise.reject(new Error('bridge not ready'));\n }\n return new Promise((resolve, reject) => {\n // 生成唯一的回调 ID,用于匹配 Flutter 回调的结果\n // 生成回调ID并注册resolve函数\n const callbackId = 'cb_' + (++cbId);\n promiseMap.set(callbackId, resolve as (value: any) => void);\n\n // 发送消息到Flutter\n\n (window as any).WLYDBridge.postMessage(\n JSON.stringify({\n type,\n data,\n callbackId,// 唯一回调 ID,Flutter 处理完会带回这个 ID\n version\n }\n ))\n });\n }\n };\n\n // 初始化AppBridge \n // Flutter回调处理\n // native bridge 回传数据\n const resolveCallbackPromise = <T = unknown>(callbackId: string, data: unknown) => {\n const resolve = promiseMap.get(callbackId);\n if (resolve) {\n try {\n let parsedData;\n if (typeof data === 'string') {\n try {\n parsedData = JSON.parse(data)\n } catch (parseError) {\n parsedData = {\n success: false,\n message: `JSON解析失败: ${parseError instanceof Error ? parseError.message : 'Unknown error'}`,\n }\n }\n } else {\n parsedData = data\n }\n console.log('resolveCallbackPromise', resolve);\n // 成功时返回标准格式\n resolve(parsedData)\n } catch (error) {\n // 异常时返回错误格式\n resolve({\n success: false,\n message: error instanceof Error ? error.message : 'Unknown error',\n })\n } finally {\n // 清理映射表\n promiseMap.delete(callbackId)\n }\n }\n }\n\n (window as any).resolveFlutterPromise = <T = unknown>(callbackId: string, data: unknown): void => {\n resolveCallbackPromise<T>(callbackId, data)\n }\n}\n\n// 通用桥接调用封装\nexport const invoke = (type, params?: any, format?) => {\n\treturn AppBridge.invoke(type, params)\n\t\t.then(data => typeof format === 'function' ? format(data) : data)\n\t\t.catch(err => {\n console.log('invoke err', err);\n\t\t\tthrow err;\n\t\t});\n}","import { invoke } from \"../core/bridgeCore\";\nimport { BaseOptions } from \"../types\";\n\nexport interface ChooseImageOptions extends Omit<BaseOptions, 'success'> {\n count: number;\n sizeType: ['original', 'compressed'];\n sourceType: ['album', 'camera'];\n success?: (result: {\n tempFilePaths: string[];\n tempFiles: {\n size: number;\n type: string;\n }[];\n }) => void;\n}\n\n// 选择图片\nexport const chooseImage = (options: ChooseImageOptions) => {\n const { success, fail, complete, ...restParams } = options;\n invoke('chooseImage', restParams).then(data => {\n\t\tif (data.success) {\n\t\t\tsuccess?.(data);\n\t\t} else {\n\t\t\tfail?.();\n\t\t}\n\t}).catch(fail).finally(complete);\n}\n","import { invoke } from \"../core/bridgeCore\";\nimport { BaseOptions } from \"../types\";\n\nexport interface GetLocationOptions extends Omit<BaseOptions, 'success'> {\n\tsuccess?: (result: {\n\t\tlatitude: number;\n\t\tlongitude: number;\n\t}) => void;\n}\n \n// 获取定位\nexport const getLocation = (options: GetLocationOptions) => {\n\tconst { success, fail, complete, ...restParams } = options;\n\tinvoke('getLocation', restParams).then(result => {\n\t\tconst { data } = result;\n\t\tif (data && data.latitude && data.longitude) {\n\t\t\tsuccess?.(data);\n\t\t} else {\n\t\t\tfail?.();\n\t\t}\n\t}).catch(fail).finally(complete);\n}\n","import { invoke } from \"../core/bridgeCore\";\nimport { BaseOptions } from \"../types\";\n\nexport interface PreviewImageOptions extends BaseOptions {\n\turls: string[];\n}\n\n/**\n * 预览图片\n * @param options 预览图片参数\n * @param options.urls 图片URL列表\n * @param options.success 成功回调\n * @param options.fail 失败回调\n * @param options.complete 完成回调\n * @returns \n */\nexport const previewImage = (options: PreviewImageOptions) => {\n\tif (!options.urls || options.urls.length === 0) {\n\t\toptions.fail?.();\n\t\treturn;\n\t}\n\tinvoke('previewImage', {\n\t\turls: options.urls\n\t}).then(options.success)\n\t\t.catch(options.fail)\n\t\t.finally(options.complete);\n}","import { invoke } from \"../core/bridgeCore\";\nimport { BaseOptions } from \"../types\";\nexport interface LoginOptions extends Omit<BaseOptions, 'success'> {\n\tsuccess?: (result: {\n\t\tloginSuccess: boolean;\n\t\tuserId: string;\n\t}) => void;\n}\n\nexport const login = (options: LoginOptions) => {\n\tconst { success, fail, complete, ...restParams } = options;\n\tinvoke('login', restParams).then(data => {\n\t\tif (data.success) {\n\t\t\tsuccess?.(data);\n\t\t} else {\n\t\t\tfail?.();\n\t\t}\n\t}).catch(fail).finally(complete);\n}","import { invoke } from \"../core/bridgeCore\";\nimport { BaseOptions } from \"../types\";\n\nexport interface NavigateToOptions extends BaseOptions {\n\troute: string;\n\tparams: any;\n}\n\nexport const navigateTo = (options: NavigateToOptions) => {\n\tconst { success, fail, complete, ...restParams } = options;\n\tinvoke('navigateTo', restParams).then(data => {\n\t\tif (data.success) {\n\t\t\tsuccess?.();\n\t\t} else {\n\t\t\tfail?.();\n\t\t}\n\t}).catch(fail).finally(complete);\n}","import { invoke } from \"../core/bridgeCore\";\nimport { BaseOptions } from \"../types\";\n\nexport interface WxShareOptions extends BaseOptions {\n\ttitle: string;\n\turl: string;\n\tshareType: ['appMessage', 'timeline', 'favorite'];\n}\n// 分享\nexport const wxShare = (options: WxShareOptions) => {\n\tconst { success, fail, complete, ...restParams } = options;\n\tinvoke('wxShare', restParams).then(data => {\n\t\tif (data.success) {\n\t\t\tsuccess?.();\n\t\t} else {\n\t\t\tfail?.();\n\t\t}\n\t}).catch(fail).finally(complete);\n}","import { invoke } from \"../core/bridgeCore\";\nimport { BaseOptions } from \"../types\";\n\n// 返回\nexport const navigateBack = (options?: BaseOptions) => {\n const { success, fail, complete, ...restParams } = options;\n\tinvoke('back', restParams).then(data => {\n\t\tconsole.log('navigateBack data', data);\n\t\t// if (data.success) {\n\t\t// \tsuccess?.();\n\t\t// } else {\n\t\t// \tfail?.();\n\t\t// }\n\t}).catch(fail).finally(complete);\n // .then(() => showToast('返回已触发', 2000, 'success'));\n}","import { invoke } from \"../core/bridgeCore\";\nimport { BaseOptions } from \"../types\";\n\nexport interface NavigationBarTitleOptions extends BaseOptions {\n\ttitle: string;\n}\n\n/**\n * 预览图片\n * @param options 预览图片参数\n * @param options.urls 图片URL列表\n * @param options.success 成功回调\n * @param options.fail 失败回调\n * @param options.complete 完成回调\n * @returns \n */\nexport const setNavigationBarTitle = (options: NavigationBarTitleOptions) => {\n\tif (!options.title) {\n\t\toptions.fail?.();\n\t\treturn;\n\t}\n\tinvoke('updateNavTitle', {\n\t\ttitle: options.title\n\t}).then(options.success)\n\t\t.catch(options.fail)\n\t\t.finally(options.complete);\n}","export enum LifecycleHooks {\n PAGE_CREATED = 'onPageCreated',\n RESUME = 'onResume',\n PAUSE = 'onPause',\n LOAD = 'onLoad',\n SHOW = 'onShow',\n HIDE = 'onHide',\n DESTROY = 'onDestroy'\n}","import { LifecycleHooks } from \"./types\";\n\nconst __lifecycleFunctionMap = {};\n\n// 1. 注册全局监听函数,接收 Flutter 生命周期事件\n(window as any).flutterLifeCycleListener = function(eventName) {\n if (__lifecycleFunctionMap[eventName]) {\n __lifecycleFunctionMap[eventName].forEach(hook => hook())\n }\n};\n\nconst createLifeCycleHook = (\n lifecycle: string\n ) =>\n (\n hook: () => void,\n ): void => {\n __lifecycleFunctionMap[lifecycle] = __lifecycleFunctionMap[lifecycle] || []\n __lifecycleFunctionMap[lifecycle].push(hook)\n }\n\nexport const onPageCreated = createLifeCycleHook(LifecycleHooks.PAGE_CREATED)\nexport const onResume = createLifeCycleHook(LifecycleHooks.RESUME)\nexport const onPause = createLifeCycleHook(LifecycleHooks.PAUSE)\nexport const onLoad = createLifeCycleHook(LifecycleHooks.LOAD)\nexport const onShow = createLifeCycleHook(LifecycleHooks.SHOW)\nexport const onHide = createLifeCycleHook(LifecycleHooks.HIDE)\nexport const onDestroy = createLifeCycleHook(LifecycleHooks.DESTROY)","import * as api from './api'\nimport { initBridgeCore } from './core/bridgeCore'\nimport { onPageCreated } from './lifecycle/apiLifecycle'\n\nconst initBridge = () => {\n initBridgeCore()\n}\n\nonPageCreated(() => {\n if (!(window as any).uni) {\n (window as any).uni = {}\n }\n const uniApi: any = (window as any).uni\n Object.assign(uniApi, api)\n})\n\ninitBridge()\n\nexport * from './api'\nexport * from './lifecycle/apiLifecycle'"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wlydfe/flutter-bridge",
3
- "version": "0.0.6",
3
+ "version": "0.0.7",
4
4
  "description": "flutter uniapp bridge",
5
5
  "main": "lib/index.umd.js",
6
6
  "module": "lib/index.js",
@@ -11,8 +11,9 @@ export interface GetLocationOptions extends Omit<BaseOptions, 'success'> {
11
11
  // 获取定位
12
12
  export const getLocation = (options: GetLocationOptions) => {
13
13
  const { success, fail, complete, ...restParams } = options;
14
- invoke('getLocation', restParams).then(data => {
15
- if (data.latitude && data.longitude) {
14
+ invoke('getLocation', restParams).then(result => {
15
+ const { data } = result;
16
+ if (data && data.latitude && data.longitude) {
16
17
  success?.(data);
17
18
  } else {
18
19
  fail?.();
@@ -4,7 +4,7 @@ export const initBridgeCore = () => {
4
4
  // 全局回调ID和回调函数存储
5
5
  let cbId = 0;
6
6
  // 全局回调池,存储「回调 ID → {resolve, reject}」的映射
7
- const cbs = {};
7
+ // const cbs = {};
8
8
  const version = "1.0";
9
9
 
10
10
  // Promise resolve 映射表
@@ -25,14 +25,20 @@ export const initBridgeCore = () => {
25
25
  }
26
26
  return new Promise((resolve, reject) => {
27
27
  // 生成唯一的回调 ID,用于匹配 Flutter 回调的结果
28
- const id = 'cb_' + (++cbId);
29
- cbs[id] = { resolve, reject };
30
- (window as any).WLYDBridge.postMessage(JSON.stringify({
28
+ // 生成回调ID并注册resolve函数
29
+ const callbackId = 'cb_' + (++cbId);
30
+ promiseMap.set(callbackId, resolve as (value: any) => void);
31
+
32
+ // 发送消息到Flutter
33
+
34
+ (window as any).WLYDBridge.postMessage(
35
+ JSON.stringify({
31
36
  type,
32
37
  data,
33
- callbackId: id,// 唯一回调 ID,Flutter 处理完会带回这个 ID
38
+ callbackId,// 唯一回调 ID,Flutter 处理完会带回这个 ID
34
39
  version
35
- }));
40
+ }
41
+ ))
36
42
  });
37
43
  }
38
44
  };
@@ -42,7 +48,6 @@ export const initBridgeCore = () => {
42
48
  // native bridge 回传数据
43
49
  const resolveCallbackPromise = <T = unknown>(callbackId: string, data: unknown) => {
44
50
  const resolve = promiseMap.get(callbackId);
45
-
46
51
  if (resolve) {
47
52
  try {
48
53
  let parsedData;
@@ -58,7 +63,7 @@ export const initBridgeCore = () => {
58
63
  } else {
59
64
  parsedData = data
60
65
  }
61
-
66
+ console.log('resolveCallbackPromise', resolve);
62
67
  // 成功时返回标准格式
63
68
  resolve(parsedData)
64
69
  } catch (error) {
@@ -84,6 +89,7 @@ export const invoke = (type, params?: any, format?) => {
84
89
  return AppBridge.invoke(type, params)
85
90
  .then(data => typeof format === 'function' ? format(data) : data)
86
91
  .catch(err => {
92
+ console.log('invoke err', err);
87
93
  throw err;
88
94
  });
89
95
  }