@wlydfe/flutter-bridge 0.0.6 → 0.0.8
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 +13 -5
- package/lib/index.js.map +1 -1
- package/lib/index.umd.js +13 -5
- package/lib/index.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/api/getLocation.ts +4 -2
- package/src/core/bridgeCore.ts +14 -9
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
|
-
|
|
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:
|
|
67
|
+
callbackId: callbackId, // 唯一回调 ID,Flutter 处理完会带回这个 ID
|
|
63
68
|
version: version
|
|
64
69
|
}));
|
|
65
70
|
});
|
|
@@ -103,7 +108,7 @@ var initBridgeCore = function () {
|
|
|
103
108
|
}
|
|
104
109
|
}
|
|
105
110
|
};
|
|
106
|
-
window.
|
|
111
|
+
window.onFlutterCallbackPromise = function (callbackId, data) {
|
|
107
112
|
resolveCallbackPromise(callbackId, data);
|
|
108
113
|
};
|
|
109
114
|
};
|
|
@@ -112,6 +117,7 @@ var invoke = function (type, params, format) {
|
|
|
112
117
|
return AppBridge.invoke(type, params)
|
|
113
118
|
.then(function (data) { return typeof format === 'function' ? format(data) : data; })
|
|
114
119
|
.catch(function (err) {
|
|
120
|
+
console.log('invoke err', err);
|
|
115
121
|
throw err;
|
|
116
122
|
});
|
|
117
123
|
};
|
|
@@ -132,8 +138,10 @@ var chooseImage = function (options) {
|
|
|
132
138
|
// 获取定位
|
|
133
139
|
var getLocation = function (options) {
|
|
134
140
|
var success = options.success, fail = options.fail, complete = options.complete, restParams = __rest(options, ["success", "fail", "complete"]);
|
|
135
|
-
invoke('getLocation', restParams).then(function (
|
|
136
|
-
|
|
141
|
+
invoke('getLocation', restParams).then(function (result) {
|
|
142
|
+
var data = result.data;
|
|
143
|
+
console.log('getLocation data', result);
|
|
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 // 成功时返回标准格式\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).onFlutterCallbackPromise = <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\tconsole.log('getLocation 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
|
-
|
|
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:
|
|
73
|
+
callbackId: callbackId, // 唯一回调 ID,Flutter 处理完会带回这个 ID
|
|
69
74
|
version: version
|
|
70
75
|
}));
|
|
71
76
|
});
|
|
@@ -109,7 +114,7 @@
|
|
|
109
114
|
}
|
|
110
115
|
}
|
|
111
116
|
};
|
|
112
|
-
window.
|
|
117
|
+
window.onFlutterCallbackPromise = function (callbackId, data) {
|
|
113
118
|
resolveCallbackPromise(callbackId, data);
|
|
114
119
|
};
|
|
115
120
|
};
|
|
@@ -118,6 +123,7 @@
|
|
|
118
123
|
return AppBridge.invoke(type, params)
|
|
119
124
|
.then(function (data) { return typeof format === 'function' ? format(data) : data; })
|
|
120
125
|
.catch(function (err) {
|
|
126
|
+
console.log('invoke err', err);
|
|
121
127
|
throw err;
|
|
122
128
|
});
|
|
123
129
|
};
|
|
@@ -138,8 +144,10 @@
|
|
|
138
144
|
// 获取定位
|
|
139
145
|
var getLocation = function (options) {
|
|
140
146
|
var success = options.success, fail = options.fail, complete = options.complete, restParams = __rest(options, ["success", "fail", "complete"]);
|
|
141
|
-
invoke('getLocation', restParams).then(function (
|
|
142
|
-
|
|
147
|
+
invoke('getLocation', restParams).then(function (result) {
|
|
148
|
+
var data = result.data;
|
|
149
|
+
console.log('getLocation data', result);
|
|
150
|
+
if (data && data.latitude && data.longitude) {
|
|
143
151
|
success === null || success === void 0 ? void 0 : success(data);
|
|
144
152
|
}
|
|
145
153
|
else {
|
package/lib/index.umd.js.map
CHANGED
|
@@ -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 // 成功时返回标准格式\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).onFlutterCallbackPromise = <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\tconsole.log('getLocation 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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAAA,IAAI,SAAS,GAAG,IAAI,CAAC;IAEd,IAAM,cAAc,GAAG,YAAA;;QAE5B,IAAI,IAAI,GAAG,CAAC,CAAC;;;QAGb,IAAM,OAAO,GAAG,KAAK,CAAC;;IAGtB,IAAA,IAAM,UAAU,GAAG,IAAI,GAAG,EAA2B,CAAA;IAErD;;;;;IAKE;IACF,IAAA,SAAS,GAAG;YACV,MAAM,EAAA,UAAC,IAAI,EAAE,IAAS,EAAA;IAAT,YAAA,IAAA,IAAA,KAAA,KAAA,CAAA,EAAA,EAAA,IAAS,GAAA,EAAA,CAAA,EAAA;;IAEpB,YAAA,IAAI,CAAE,MAAc,CAAC,UAAU,IAAI,OAAQ,MAAc,CAAC,UAAU,CAAC,WAAW,KAAK,UAAU,EAAE;IAC7F,gBAAA,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;oBAChC,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;iBACxD;IACD,YAAA,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM,EAAA;;;oBAGjC,IAAM,UAAU,GAAI,KAAK,IAAI,EAAE,IAAI,CAAC,CAAC;IACrC,gBAAA,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,OAA+B,CAAC,CAAC;;oBAI3D,MAAc,CAAC,UAAU,CAAC,WAAW,CACpC,IAAI,CAAC,SAAS,CAAC;IACb,oBAAA,IAAI,EAAA,IAAA;IACJ,oBAAA,IAAI,EAAA,IAAA;wBACJ,UAAU,EAAA,UAAA;IACV,oBAAA,OAAO,EAAA,OAAA;IACR,iBAAA,CACF,CAAC,CAAA;IACJ,aAAC,CAAC,CAAC;aACJ;SACF,CAAC;;;;IAKF,IAAA,IAAM,sBAAsB,GAAG,UAAc,UAAkB,EAAE,IAAa,EAAA;YAC5E,IAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC3C,IAAI,OAAO,EAAE;IACX,YAAA,IAAI;oBACF,IAAI,UAAU,SAAA,CAAC;IACf,gBAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;IAC5B,oBAAA,IAAI;IACF,wBAAA,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;yBAC9B;wBAAC,OAAO,UAAU,EAAE;IACnB,wBAAA,UAAU,GAAG;IACX,4BAAA,OAAO,EAAE,KAAK;IACd,4BAAA,OAAO,EAAE,gCAAA,CAAA,MAAA,CAAa,UAAU,YAAY,KAAK,GAAG,UAAU,CAAC,OAAO,GAAG,eAAe,CAAE;6BAC3F,CAAA;yBACF;qBACF;yBAAM;wBACL,UAAU,GAAG,IAAI,CAAA;qBAClB;;oBAED,OAAO,CAAC,UAAU,CAAC,CAAA;iBACpB;gBAAC,OAAO,KAAK,EAAE;;IAEd,gBAAA,OAAO,CAAC;IACN,oBAAA,OAAO,EAAE,KAAK;IACd,oBAAA,OAAO,EAAE,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,eAAe;IAClE,iBAAA,CAAC,CAAA;iBACH;wBAAS;;IAER,gBAAA,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;iBAC9B;aACF;IACH,KAAC,CAAA;IAEA,IAAA,MAAc,CAAC,wBAAwB,GAAG,UAAc,UAAkB,EAAE,IAAa,EAAA;IACxF,QAAA,sBAAsB,CAAI,UAAU,EAAE,IAAI,CAAC,CAAA;IAC7C,KAAC,CAAA;IACH,CAAC,CAAA;IAED;IACO,IAAM,MAAM,GAAG,UAAC,IAAI,EAAE,MAAY,EAAE,MAAO,EAAA;IACjD,IAAA,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC;aACnC,IAAI,CAAC,UAAA,IAAI,EAAA,EAAI,OAAA,OAAO,MAAM,KAAK,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAlD,EAAkD,CAAC;aAChE,KAAK,CAAC,UAAA,GAAG,EAAA;IACN,QAAA,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;IAClC,QAAA,MAAM,GAAG,CAAC;IACX,KAAC,CAAC,CAAC;IACL,CAAC;;IC7ED;AACO,QAAM,WAAW,GAAG,UAAC,OAA2B,EAAA;QAC7C,IAAA,OAAO,GAAoC,OAAO,CAAA,OAA3C,EAAE,IAAI,GAA8B,OAAO,CAArC,IAAA,EAAE,QAAQ,GAAoB,OAAO,SAA3B,EAAK,UAAU,UAAK,OAAO,EAApD,CAA0C,SAAA,EAAA,MAAA,EAAA,UAAA,CAAA,CAAF,CAAa;QAC3D,MAAM,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,UAAA,IAAI,EAAA;IAC3C,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;IACjB,YAAA,OAAO,aAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAG,IAAI,CAAC,CAAC;aAChB;iBAAM;IACN,YAAA,IAAI,KAAJ,IAAA,IAAA,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,EAAI,CAAC;aACT;SACD,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClC;;IChBA;AACO,QAAM,WAAW,GAAG,UAAC,OAA2B,EAAA;QAC9C,IAAA,OAAO,GAAoC,OAAO,CAAA,OAA3C,EAAE,IAAI,GAA8B,OAAO,CAArC,IAAA,EAAE,QAAQ,GAAoB,OAAO,SAA3B,EAAK,UAAU,UAAK,OAAO,EAApD,CAA0C,SAAA,EAAA,MAAA,EAAA,UAAA,CAAA,CAAF,CAAa;QAC3D,MAAM,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,UAAA,MAAM,EAAA;IACpC,QAAA,IAAA,IAAI,GAAK,MAAM,CAAA,IAAX,CAAY;IACxB,QAAA,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;YACxC,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;IAC5C,YAAA,OAAO,aAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAG,IAAI,CAAC,CAAC;aAChB;iBAAM;IACN,YAAA,IAAI,KAAJ,IAAA,IAAA,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,EAAI,CAAC;aACT;SACD,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClC;;ICfA;;;;;;;;IAQG;AACI,QAAM,YAAY,GAAG,UAAC,OAA4B,EAAA;;IACxD,IAAA,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;IAC/C,QAAA,CAAA,EAAA,GAAA,OAAO,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,OAAA,CAAI,CAAC;YACjB,OAAO;SACP;QACD,MAAM,CAAC,cAAc,EAAE;YACtB,IAAI,EAAE,OAAO,CAAC,IAAI;IAClB,KAAA,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;IACtB,SAAA,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;IACnB,SAAA,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7B;;ACjBO,QAAM,KAAK,GAAG,UAAC,OAAqB,EAAA;QAClC,IAAA,OAAO,GAAoC,OAAO,CAAA,OAA3C,EAAE,IAAI,GAA8B,OAAO,CAArC,IAAA,EAAE,QAAQ,GAAoB,OAAO,SAA3B,EAAK,UAAU,UAAK,OAAO,EAApD,CAA0C,SAAA,EAAA,MAAA,EAAA,UAAA,CAAA,CAAF,CAAa;QAC3D,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,UAAA,IAAI,EAAA;IACpC,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;IACjB,YAAA,OAAO,aAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAG,IAAI,CAAC,CAAC;aAChB;iBAAM;IACN,YAAA,IAAI,KAAJ,IAAA,IAAA,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,EAAI,CAAC;aACT;SACD,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClC;;ACVO,QAAM,UAAU,GAAG,UAAC,OAA0B,EAAA;QAC5C,IAAA,OAAO,GAAoC,OAAO,CAAA,OAA3C,EAAE,IAAI,GAA8B,OAAO,CAArC,IAAA,EAAE,QAAQ,GAAoB,OAAO,SAA3B,EAAK,UAAU,UAAK,OAAO,EAApD,CAA0C,SAAA,EAAA,MAAA,EAAA,UAAA,CAAA,CAAF,CAAa;QAC3D,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,UAAA,IAAI,EAAA;IACzC,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;IACjB,YAAA,OAAO,KAAP,IAAA,IAAA,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAO,EAAI,CAAC;aACZ;iBAAM;IACN,YAAA,IAAI,KAAJ,IAAA,IAAA,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,EAAI,CAAC;aACT;SACD,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClC;;ICTA;AACO,QAAM,OAAO,GAAG,UAAC,OAAuB,EAAA;QACtC,IAAA,OAAO,GAAoC,OAAO,CAAA,OAA3C,EAAE,IAAI,GAA8B,OAAO,CAArC,IAAA,EAAE,QAAQ,GAAoB,OAAO,SAA3B,EAAK,UAAU,UAAK,OAAO,EAApD,CAA0C,SAAA,EAAA,MAAA,EAAA,UAAA,CAAA,CAAF,CAAa;QAC3D,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,UAAA,IAAI,EAAA;IACtC,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;IACjB,YAAA,OAAO,KAAP,IAAA,IAAA,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAO,EAAI,CAAC;aACZ;iBAAM;IACN,YAAA,IAAI,KAAJ,IAAA,IAAA,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,EAAI,CAAC;aACT;SACD,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClC;;ICfA;AACO,QAAM,YAAY,GAAG,UAAC,OAAqB,EAAA;QACG,OAAO,CAAA,OAA3C,MAAE,IAAI,GAA8B,OAAO,CAArC,IAAA,CAAA,CAAE,QAAQ,GAAoB,OAAO,SAA3B,CAAK,CAAA,UAAU,UAAK,OAAO,EAApD,CAA0C,SAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAW;QAC5D,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,UAAA,IAAI,EAAA;IACnC,QAAA,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;;;;;;SAMvC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;;IAElC;;ICRA;;;;;;;;IAQG;AACI,QAAM,qBAAqB,GAAG,UAAC,OAAkC,EAAA;;IACvE,IAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;IACnB,QAAA,CAAA,EAAA,GAAA,OAAO,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,OAAA,CAAI,CAAC;YACjB,OAAO;SACP;QACD,MAAM,CAAC,gBAAgB,EAAE;YACxB,KAAK,EAAE,OAAO,CAAC,KAAK;IACpB,KAAA,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;IACtB,SAAA,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;IACnB,SAAA,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7B;;;;;;;;;;;;;;IC1BA,IAAY,cAQX,CAAA;IARD,CAAA,UAAY,cAAc,EAAA;IACxB,IAAA,cAAA,CAAA,cAAA,CAAA,GAAA,eAA8B,CAAA;IAC9B,IAAA,cAAA,CAAA,QAAA,CAAA,GAAA,UAAmB,CAAA;IACnB,IAAA,cAAA,CAAA,OAAA,CAAA,GAAA,SAAiB,CAAA;IACjB,IAAA,cAAA,CAAA,MAAA,CAAA,GAAA,QAAe,CAAA;IACf,IAAA,cAAA,CAAA,MAAA,CAAA,GAAA,QAAe,CAAA;IACf,IAAA,cAAA,CAAA,MAAA,CAAA,GAAA,QAAe,CAAA;IACf,IAAA,cAAA,CAAA,SAAA,CAAA,GAAA,WAAqB,CAAA;IACvB,CAAC,EARW,cAAc,KAAd,cAAc,GAQzB,EAAA,CAAA,CAAA;;ICND,IAAM,sBAAsB,GAAG,EAAE,CAAC;IAElC;IACC,MAAc,CAAC,wBAAwB,GAAG,UAAS,SAAS,EAAA;IACzD,IAAA,IAAI,sBAAsB,CAAC,SAAS,CAAC,EAAE;IACnC,QAAA,sBAAsB,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,UAAA,IAAI,EAAA,EAAI,OAAA,IAAI,EAAE,CAAN,EAAM,CAAC,CAAA;SAC5D;IACL,CAAC,CAAC;IAEF,IAAM,mBAAmB,GAAG,UACxB,SAAiB,EAAA;IAEnB,IAAA,OAAA,UACE,IAAgB,EAAA;YAEhB,sBAAsB,CAAC,SAAS,CAAC,GAAG,sBAAsB,CAAC,SAAS,CAAC,IAAI,EAAE,CAAA;YAC3E,sBAAsB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;SAC7C,CAAA;IALD,CAKC,CAAA;AAEU,QAAA,aAAa,GAAG,mBAAmB,CAAC,cAAc,CAAC,YAAY,EAAC;AAChE,QAAA,QAAQ,GAAG,mBAAmB,CAAC,cAAc,CAAC,MAAM,EAAC;AACrD,QAAA,OAAO,GAAG,mBAAmB,CAAC,cAAc,CAAC,KAAK,EAAC;AACnD,QAAA,MAAM,GAAG,mBAAmB,CAAC,cAAc,CAAC,IAAI,EAAC;AACjD,QAAA,MAAM,GAAG,mBAAmB,CAAC,cAAc,CAAC,IAAI,EAAC;AACjD,QAAA,MAAM,GAAG,mBAAmB,CAAC,cAAc,CAAC,IAAI,EAAC;AACjD,QAAA,SAAS,GAAG,mBAAmB,CAAC,cAAc,CAAC,OAAO;;ICvBnE,IAAM,UAAU,GAAG,YAAA;IACjB,IAAA,cAAc,EAAE,CAAA;IAClB,CAAC,CAAA;IAED,aAAa,CAAC,YAAA;IACZ,IAAA,IAAI,CAAE,MAAc,CAAC,GAAG,EAAE;IACvB,QAAA,MAAc,CAAC,GAAG,GAAG,EAAE,CAAA;SACzB;IACD,IAAA,IAAM,MAAM,GAAS,MAAc,CAAC,GAAG,CAAA;IACvC,IAAA,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC5B,CAAC,CAAC,CAAA;IAEF,UAAU,EAAE;;;;;;;;;;;;;;;;;;;;;;"}
|
package/package.json
CHANGED
package/src/api/getLocation.ts
CHANGED
|
@@ -11,8 +11,10 @@ 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(
|
|
15
|
-
|
|
14
|
+
invoke('getLocation', restParams).then(result => {
|
|
15
|
+
const { data } = result;
|
|
16
|
+
console.log('getLocation data', result);
|
|
17
|
+
if (data && data.latitude && data.longitude) {
|
|
16
18
|
success?.(data);
|
|
17
19
|
} else {
|
|
18
20
|
fail?.();
|
package/src/core/bridgeCore.ts
CHANGED
|
@@ -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
|
-
|
|
29
|
-
|
|
30
|
-
(
|
|
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
|
|
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,6 @@ export const initBridgeCore = () => {
|
|
|
58
63
|
} else {
|
|
59
64
|
parsedData = data
|
|
60
65
|
}
|
|
61
|
-
|
|
62
66
|
// 成功时返回标准格式
|
|
63
67
|
resolve(parsedData)
|
|
64
68
|
} catch (error) {
|
|
@@ -74,7 +78,7 @@ export const initBridgeCore = () => {
|
|
|
74
78
|
}
|
|
75
79
|
}
|
|
76
80
|
|
|
77
|
-
(window as any).
|
|
81
|
+
(window as any).onFlutterCallbackPromise = <T = unknown>(callbackId: string, data: unknown): void => {
|
|
78
82
|
resolveCallbackPromise<T>(callbackId, data)
|
|
79
83
|
}
|
|
80
84
|
}
|
|
@@ -84,6 +88,7 @@ export const invoke = (type, params?: any, format?) => {
|
|
|
84
88
|
return AppBridge.invoke(type, params)
|
|
85
89
|
.then(data => typeof format === 'function' ? format(data) : data)
|
|
86
90
|
.catch(err => {
|
|
91
|
+
console.log('invoke err', err);
|
|
87
92
|
throw err;
|
|
88
93
|
});
|
|
89
94
|
}
|