alipay-webview-bridge 1.0.0
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/README.md +128 -0
- package/dist/h5/index.cjs.js +2 -0
- package/dist/h5/index.cjs.js.map +1 -0
- package/dist/h5/index.d.ts +113 -0
- package/dist/h5/index.esm.js +2 -0
- package/dist/h5/index.esm.js.map +1 -0
- package/dist/h5/index.umd.js +2 -0
- package/dist/h5/index.umd.js.map +1 -0
- package/dist/miniprogram/index.cjs.js +2 -0
- package/dist/miniprogram/index.cjs.js.map +1 -0
- package/dist/miniprogram/index.d.ts +32 -0
- package/dist/miniprogram/index.esm.js +2 -0
- package/dist/miniprogram/index.esm.js.map +1 -0
- package/package.json +38 -0
package/README.md
ADDED
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
# alipay-webview-bridge
|
|
2
|
+
|
|
3
|
+
H5 WebView 与支付宝小程序双向通信适配器。在小程序 WebView 中的 H5 页面里,像调用原生 API 一样调用支付宝小程序能力。
|
|
4
|
+
|
|
5
|
+
## 安装
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install alipay-webview-bridge
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## 使用
|
|
12
|
+
|
|
13
|
+
### H5 端 (WebView 页面)
|
|
14
|
+
|
|
15
|
+
**ESM:**
|
|
16
|
+
|
|
17
|
+
```ts
|
|
18
|
+
import { init, requestAuthCode, getLocation } from 'alipay-webview-bridge/h5';
|
|
19
|
+
|
|
20
|
+
await init();
|
|
21
|
+
const res = await requestAuthCode('auth_base');
|
|
22
|
+
console.log(res.authCode);
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
**UMD (script 标签):**
|
|
26
|
+
|
|
27
|
+
```html
|
|
28
|
+
<script src="node_modules/alipay-webview-bridge/dist/h5/index.umd.js"></script>
|
|
29
|
+
<script>
|
|
30
|
+
const SDK = window.AlipayBridge;
|
|
31
|
+
SDK.init().then(() => {
|
|
32
|
+
SDK.requestAuthCode('auth_base').then(res => console.log(res.authCode));
|
|
33
|
+
});
|
|
34
|
+
</script>
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### 小程序端
|
|
38
|
+
|
|
39
|
+
```js
|
|
40
|
+
// pages/webview/webview.js
|
|
41
|
+
const { createBridgeProxy } = require('alipay-webview-bridge/miniprogram');
|
|
42
|
+
|
|
43
|
+
Page({
|
|
44
|
+
data: { webUrl: 'https://your-h5-page.com' },
|
|
45
|
+
onLoad() {
|
|
46
|
+
this.proxy = createBridgeProxy(this);
|
|
47
|
+
},
|
|
48
|
+
onWebViewMessage(e) {
|
|
49
|
+
this.proxy.handleMessage(e);
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
```xml
|
|
55
|
+
<!-- pages/webview/webview.axml -->
|
|
56
|
+
<web-view id="web-view" src="{{webUrl}}" onMessage="onWebViewMessage" />
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## 支持的 API
|
|
60
|
+
|
|
61
|
+
| 类别 | H5 方法 | 说明 |
|
|
62
|
+
|------|---------|------|
|
|
63
|
+
| 授权 | `requestAuthCode(scopes)` | 获取授权码 |
|
|
64
|
+
| 定位 | `requestLocation(type)` | 获取位置 |
|
|
65
|
+
| 震动 | `requestVibrate(type)` | 设备震动 |
|
|
66
|
+
| 导航栏 | `setNavbar(params)` | 设置导航栏 |
|
|
67
|
+
| Toast | `showToast / showLoading / hideLoading` | 轻提示 |
|
|
68
|
+
| 弹窗 | `alert / confirm / showActionSheet` | 交互弹窗 |
|
|
69
|
+
| 系统 | `getSystemInfo / getNetworkType / getBatteryInfo` | 系统信息 |
|
|
70
|
+
| 存储 | `setStorage / getStorage / removeStorage` | 数据缓存 |
|
|
71
|
+
| 剪贴板 | `setClipboard / getClipboard` | 剪贴板操作 |
|
|
72
|
+
| 扫码 | `scan(type)` | 扫码 |
|
|
73
|
+
| 电话 | `makePhoneCall(number)` | 拨打电话 |
|
|
74
|
+
| 图片 | `chooseImage / previewImage / saveImage` | 图片操作 |
|
|
75
|
+
| 传感器 | `startAccelerometer / startGyroscope / startCompass` | 硬件传感器 |
|
|
76
|
+
| 蓝牙 | `openBluetoothAdapter / getBluetoothAdapterState / ...` | BLE |
|
|
77
|
+
| WiFi | `startWifi / getConnectedWifi / connectWifi` | WiFi |
|
|
78
|
+
| 生物认证 | `checkBioAuthMode / startBioAuth` | 指纹/面容 |
|
|
79
|
+
| 导航 | `navigateTo / navigateBack / navigateToMiniProgram` | 路由跳转 |
|
|
80
|
+
| 支付 | `tradePay(tradeNO)` | 小程序支付 |
|
|
81
|
+
| HTTP | `httpRequest(params)` | 网络请求代理 |
|
|
82
|
+
|
|
83
|
+
## 自定义扩展
|
|
84
|
+
|
|
85
|
+
小程序端支持注册自定义 API:
|
|
86
|
+
|
|
87
|
+
```js
|
|
88
|
+
proxy.registerApi('myCustomApi', {
|
|
89
|
+
responseType: 'myCustomApi_response',
|
|
90
|
+
handler: async (data, ctx) => {
|
|
91
|
+
// 处理逻辑
|
|
92
|
+
return { result: 'ok' };
|
|
93
|
+
},
|
|
94
|
+
});
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
H5 端调用:
|
|
98
|
+
|
|
99
|
+
```ts
|
|
100
|
+
const res = await sendAsync('myCustomApi', { foo: 'bar' });
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## 构建
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
npm run build # 构建产物到 dist/
|
|
107
|
+
npm run dev # watch 模式
|
|
108
|
+
npm run clean # 清理 dist/
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## 产物结构
|
|
112
|
+
|
|
113
|
+
```
|
|
114
|
+
dist/
|
|
115
|
+
├── h5/
|
|
116
|
+
│ ├── index.esm.js # ES Module
|
|
117
|
+
│ ├── index.cjs.js # CommonJS
|
|
118
|
+
│ ├── index.umd.js # UMD (global: AlipayBridge)
|
|
119
|
+
│ └── index.d.ts # TypeScript 类型声明
|
|
120
|
+
└── miniprogram/
|
|
121
|
+
├── index.esm.js
|
|
122
|
+
├── index.cjs.js
|
|
123
|
+
└── index.d.ts
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
## License
|
|
127
|
+
|
|
128
|
+
MIT
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";let e=!1;const t={},o=[],n={INFO:"info",WARN:"warn",ERROR:"error",SUCCESS:"success",SEND:"send",RECV:"recv"};let s=[];function r(e,t,n=null){const r={time:(new Date).toLocaleTimeString(),level:e,msg:t,data:n};s.unshift(r),s.length>100&&(s=s.slice(0,100)),o.forEach(e=>{try{e(r,s)}catch(e){}})}function p(){return!(!window.my||!window.my.postMessage)}function i(e,t={}){const o=Object.assign({type:e},t);if(r(n.SEND,"[H5→Mini] "+JSON.stringify(o)),p())try{window.my.postMessage(o)}catch(e){r(n.ERROR,"postMessage failed: "+(e instanceof Error?e.message:String(e)))}else r(n.WARN,"(Not in miniprogram, message not sent)")}function c(e,t={},o={}){const n=o.timeout||3e4,s=o.responseType||e.replace(/^request_/,"")+"_response";return new Promise((o,r)=>{const p=setTimeout(()=>{u(s,c),r(new Error("Request timeout: "+e))},n);function c(e){clearTimeout(p),u(s,c),"success"===e.status?o(e):r(new Error(e.errorMessage||"Request failed"))}a(s,c),i(e,t)})}function a(e,o){return t[e]||(t[e]=[]),t[e].push(o),()=>u(e,o)}function u(e,o){t[e]&&(t[e]=t[e].filter(e=>e!==o))}exports.LogLevel=n,exports.addLog=r,exports.addLogListener=function(e){return o.push(e),()=>{o.splice(o.indexOf(e),1)}},exports.addPhoneCalendar=function(e){return c("addPhoneCalendar",e||{},{responseType:"addPhoneCalendar_response"})},exports.alert=function(e,t,o){return c("alert",{title:e||"",content:t||"",buttonText:o||"确定"},{responseType:"alert_response"})},exports.checkBioAuthMode=function(){return c("checkBioAuthMode",{},{responseType:"checkBioAuthMode_response"})},exports.chooseAlipayContact=function(e){return c("chooseAlipayContact",{count:e||1},{responseType:"chooseAlipayContact_response"})},exports.chooseImage=function(e,t){return c("chooseImage",{count:e||1,sourceType:t||["camera","album"]},{responseType:"chooseImage_response"})},exports.chooseLocation=function(){return c("chooseLocation",{},{responseType:"chooseLocation_response"})},exports.choosePhoneContact=function(){return c("choosePhoneContact",{},{responseType:"choosePhoneContact_response"})},exports.clearLogs=function(){s=[]},exports.closeBluetoothAdapter=function(){return c("closeBluetoothAdapter",{},{responseType:"closeBluetoothAdapter_response"})},exports.confirm=function(e,t,o,n){return c("confirm",{title:e||"",content:t||"",confirmButtonText:o||"确定",cancelButtonText:n||"取消"},{responseType:"confirm_response"})},exports.connectBLEDevice=function(e){return c("connectBLEDevice",{deviceId:e},{responseType:"connectBLEDevice_response"})},exports.connectWifi=function(e){return c("connectWifi",e||{},{responseType:"connectWifi_response"})},exports.datePicker=function(e,t){return c("datePicker",{format:e||"yyyy-MM-dd",currentDate:t||""},{responseType:"datePicker_response"})},exports.disconnectBLEDevice=function(e){return c("disconnectBLEDevice",{deviceId:e},{responseType:"disconnectBLEDevice_response"})},exports.getAddress=function(){return c("getAddress",{},{responseType:"getAddress_response"})},exports.getBLEDeviceCharacteristics=function(e,t){return c("getBLEDeviceCharacteristics",{deviceId:e,serviceId:t},{responseType:"getBLEDeviceCharacteristics_response"})},exports.getBLEDeviceServices=function(e){return c("getBLEDeviceServices",{deviceId:e},{responseType:"getBLEDeviceServices_response"})},exports.getBatteryInfo=function(){return c("getBatteryInfo",{},{responseType:"getBatteryInfo_response"})},exports.getBluetoothAdapterState=function(){return c("getBluetoothAdapterState",{},{responseType:"getBluetoothAdapterState_response"})},exports.getBluetoothDevices=function(){return c("getBluetoothDevices",{},{responseType:"getBluetoothDevices_response"})},exports.getClipboard=function(){return c("getClipboard",{},{responseType:"getClipboard_response"})},exports.getConnectedBluetoothDevices=function(e){return c("getConnectedBluetoothDevices",{services:e||[]},{responseType:"getConnectedBluetoothDevices_response"})},exports.getConnectedWifi=function(){return c("getConnectedWifi",{},{responseType:"getConnectedWifi_response"})},exports.getLogs=function(){return[...s]},exports.getNetworkType=function(){return c("getNetworkType",{},{responseType:"getNetworkType_response"})},exports.getOpenUserInfo=function(){return c("getOpenUserInfo",{},{responseType:"getOpenUserInfo_response"})},exports.getPhoneNumber=function(){return c("getPhoneNumber",{},{responseType:"getPhoneNumber_response"})},exports.getRunData=function(e){return c("getRunData",e||{},{responseType:"getRunData_response"})},exports.getScreenBrightness=function(){return c("getScreenBrightness",{},{responseType:"getScreenBrightness_response"})},exports.getServerTime=function(){return c("getServerTime",{},{responseType:"getServerTime_response"})},exports.getStorage=function(e){return c("getStorage",{key:e},{responseType:"getStorage_response"})},exports.getSystemInfo=function(){return c("getSystemInfo",{},{responseType:"getSystemInfo_response"})},exports.hideLoading=function(){return c("hideLoading",{},{responseType:"hideLoading_response"})},exports.httpRequest=function(e){return c("httpRequest",e||{},{responseType:"httpRequest_response"})},exports.init=function(){return e?Promise.resolve():new Promise(e=>{var t;if(null===(t=window.my)||void 0===t?void 0:t.postMessage)return void e();const o=document.createElement("script");o.src="https://appx/web-view.min.js",o.onload=()=>{r(n.INFO,"web-view.min.js loaded"),e()},o.onerror=()=>{r(n.WARN,"Failed to load web-view.min.js (not in miniprogram)"),e()},document.head.appendChild(o)}).then(()=>{p()?(window.my.onMessage=e=>{r(n.RECV,"[Mini→H5] "+JSON.stringify(e)),function(e){if(!e||!e.type)return;const o=t[e.type];o&&o.forEach(t=>{try{t(e)}catch(e){r(n.ERROR,e instanceof Error?e.message:String(e))}})}(e)},e=!0,r(n.SUCCESS,"SDK initialized")):r(n.WARN,"Not in miniprogram environment")})},exports.isInMiniprogram=p,exports.makePhoneCall=function(e){return c("makePhoneCall",{number:e},{responseType:"makePhoneCall_response"})},exports.navigateBack=function(e){return c("navigateBack",{delta:e||1},{responseType:"navigateBack_response"})},exports.navigateTo=function(e){return c("navigateTo",{url:e},{responseType:"navigateTo_response"})},exports.navigateToMiniProgram=function(e,t,o){return c("navigateToMiniProgram",{appId:e,path:t||"",extraData:o||{}},{responseType:"navigateToMiniProgram_response"})},exports.on=a,exports.onAccelerometerChange=function(e){return a("push",t=>{"accelerometerChange"===t.event&&e(t.data)})},exports.onCompassChange=function(e){return a("push",t=>{"compassChange"===t.event&&e(t.data)})},exports.onDeviceMotionChange=function(e){return a("push",t=>{"deviceMotionChange"===t.event&&e(t.data)})},exports.onGyroscopeChange=function(e){return a("push",t=>{"gyroscopeChange"===t.event&&e(t.data)})},exports.once=function(e,t){const o=a(e,e=>{o(),t(e)});return o},exports.openBluetoothAdapter=function(){return c("openBluetoothAdapter",{},{responseType:"openBluetoothAdapter_response"})},exports.openLocation=function(e){return c("openLocation",e||{},{responseType:"openLocation_response"})},exports.previewImage=function(e,t){return c("previewImage",{urls:e||[],current:t||0},{responseType:"previewImage_response"})},exports.reloadWebView=function(e){return c("reload_webview",e?{url:e}:{},{responseType:"reload_response"})},exports.removeStorage=function(e){return c("removeStorage",{key:e},{responseType:"removeStorage_response"})},exports.requestAuthCode=function(e="auth_base"){return c("request_authcode",{scopes:e},{responseType:"authcode_response"})},exports.requestLocation=function(e=0){return c("request_location",{locationType:e},{responseType:"location_response"})},exports.requestVibrate=function(e="light"){return c("request_vibrate",{vibrateType:e},{responseType:"vibrate_response"})},exports.saveImage=function(e){return c("saveImage",{url:e},{responseType:"saveImage_response"})},exports.scan=function(e){return c("scan",{scanType:e||"qr"},{responseType:"scan_response"})},exports.send=i,exports.sendAsync=c,exports.setClipboard=function(e){return c("setClipboard",{text:e},{responseType:"setClipboard_response"})},exports.setKeepScreenOn=function(e){return c("setKeepScreenOn",{keepScreenOn:!1!==e},{responseType:"setKeepScreenOn_response"})},exports.setNavbar=function(e={}){return c("set_navbar",e,{responseType:"navbar_response"})},exports.setPageTitle=function(e){return c("page_title",{content:e},{responseType:"title_response"})},exports.setScreenBrightness=function(e){return c("setScreenBrightness",{brightness:e},{responseType:"setScreenBrightness_response"})},exports.setStorage=function(e,t){return c("setStorage",{key:e,data:t},{responseType:"setStorage_response"})},exports.showActionSheet=function(e,t,o){return c("showActionSheet",{title:e||"",items:t||[],cancelButtonText:o||"取消"},{responseType:"showActionSheet_response"})},exports.showLoading=function(e){return c("showLoading",{content:e||"加载中..."},{responseType:"showLoading_response"})},exports.showToast=function(e,t,o){return c("showToast",{content:e||"",toastType:t||"none",duration:o||2e3},{responseType:"showToast_response"})},exports.startAccelerometer=function(e){return c("startAccelerometer",{interval:e||"normal"},{responseType:"startAccelerometer_response"})},exports.startBioAuth=function(e){return c("startBioAuth",{type:e||"fingerPrint"},{responseType:"startBioAuth_response"})},exports.startBluetoothDevicesDiscovery=function(e){return c("startBluetoothDevicesDiscovery",{services:e||[]},{responseType:"startBluetoothDevicesDiscovery_response"})},exports.startCompass=function(e){return c("startCompass",{interval:e||"normal"},{responseType:"startCompass_response"})},exports.startDeviceMotionListening=function(e){return c("startDeviceMotionListening",{interval:e||"normal"},{responseType:"startDeviceMotionListening_response"})},exports.startGyroscope=function(e){return c("startGyroscope",{interval:e||"normal"},{responseType:"startGyroscope_response"})},exports.startPullDownRefresh=function(){return c("startPullDownRefresh",{},{responseType:"startPullDownRefresh_response"})},exports.startWifi=function(){return c("startWifi",{},{responseType:"startWifi_response"})},exports.stopAccelerometer=function(){return c("stopAccelerometer",{},{responseType:"stopAccelerometer_response"})},exports.stopBluetoothDevicesDiscovery=function(){return c("stopBluetoothDevicesDiscovery",{},{responseType:"stopBluetoothDevicesDiscovery_response"})},exports.stopCompass=function(){return c("stopCompass",{},{responseType:"stopCompass_response"})},exports.stopDeviceMotionListening=function(){return c("stopDeviceMotionListening",{},{responseType:"stopDeviceMotionListening_response"})},exports.stopGyroscope=function(){return c("stopGyroscope",{},{responseType:"stopGyroscope_response"})},exports.stopPullDownRefresh=function(){return c("stopPullDownRefresh",{},{responseType:"stopPullDownRefresh_response"})},exports.stopWifi=function(){return c("stopWifi",{},{responseType:"stopWifi_response"})},exports.tradePay=function(e){return c("tradePay",{tradeNO:e},{responseType:"tradePay_response"})};
|
|
2
|
+
//# sourceMappingURL=index.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":["../../src/src/h5/index.ts"],"sourcesContent":["declare global {\n interface Window {\n my?: {\n postMessage: (data: Record<string, unknown>) => void;\n onMessage: ((e: Record<string, unknown>) => void) | null;\n };\n }\n}\n\nexport interface LogEntry {\n time: string;\n level: string;\n msg: string;\n data?: unknown;\n}\n\nexport type LogListener = (log: LogEntry, all: LogEntry[]) => void;\nexport type MessageHandler = (data: Record<string, unknown>) => void;\n\nexport interface SendAsyncOptions {\n timeout?: number;\n responseType?: string;\n}\n\n// ========== State ==========\nlet isReady = false;\nconst messageHandlers: Record<string, MessageHandler[]> = {};\nconst logListeners: LogListener[] = [];\n\n// ========== Logging ==========\nexport const LogLevel = {\n INFO: 'info',\n WARN: 'warn',\n ERROR: 'error',\n SUCCESS: 'success',\n SEND: 'send',\n RECV: 'recv',\n} as const;\n\nlet logs: LogEntry[] = [];\nconst MAX_LOGS = 100;\n\nexport function addLog(level: string, msg: string, data: unknown = null): void {\n const log: LogEntry = { time: new Date().toLocaleTimeString(), level, msg, data };\n logs.unshift(log);\n if (logs.length > MAX_LOGS) logs = logs.slice(0, MAX_LOGS);\n logListeners.forEach((fn) => {\n try { fn(log, logs); } catch { /* ignore */ }\n });\n}\n\nexport function addLogListener(fn: LogListener): () => void {\n logListeners.push(fn);\n return () => { logListeners.splice(logListeners.indexOf(fn), 1); };\n}\n\nexport function getLogs(): LogEntry[] { return [...logs]; }\nexport function clearLogs(): void { logs = []; }\n\n// ========== Environment Detection ==========\nexport function isInMiniprogram(): boolean {\n return !!(window.my && window.my.postMessage);\n}\n\n// ========== Dynamic Bridge Loading ==========\nconst BRIDGE_URL = 'https://appx/web-view.min.js';\n\nfunction loadBridgeScript(): Promise<void> {\n return new Promise((resolve) => {\n if (window.my?.postMessage) {\n resolve();\n return;\n }\n const script = document.createElement('script');\n script.src = BRIDGE_URL;\n script.onload = () => {\n addLog(LogLevel.INFO, 'web-view.min.js loaded');\n resolve();\n };\n script.onerror = () => {\n addLog(LogLevel.WARN, 'Failed to load web-view.min.js (not in miniprogram)');\n resolve();\n };\n document.head.appendChild(script);\n });\n}\n\n// ========== Init ==========\nexport function init(): Promise<void> {\n if (isReady) return Promise.resolve();\n\n return loadBridgeScript().then(() => {\n if (isInMiniprogram()) {\n window.my!.onMessage = (e: Record<string, unknown>) => {\n addLog(LogLevel.RECV, '[Mini→H5] ' + JSON.stringify(e));\n handleMessage(e);\n };\n isReady = true;\n addLog(LogLevel.SUCCESS, 'SDK initialized');\n } else {\n addLog(LogLevel.WARN, 'Not in miniprogram environment');\n }\n });\n}\n\n// ========== Send Messages ==========\nexport function send(type: string, params: Record<string, unknown> = {}): void {\n const data = { type, ...params };\n addLog(LogLevel.SEND, '[H5→Mini] ' + JSON.stringify(data));\n if (isInMiniprogram()) {\n try {\n window.my!.postMessage(data);\n } catch (e: unknown) {\n addLog(LogLevel.ERROR, 'postMessage failed: ' + (e instanceof Error ? e.message : String(e)));\n }\n } else {\n addLog(LogLevel.WARN, '(Not in miniprogram, message not sent)');\n }\n}\n\nexport function sendAsync(type: string, params: Record<string, unknown> = {}, opts: SendAsyncOptions = {}): Promise<Record<string, unknown>> {\n const timeout = opts.timeout || 30000;\n const responseType = opts.responseType || (type.replace(/^request_/, '') + '_response');\n\n return new Promise((resolve, reject) => {\n const timer = setTimeout(() => {\n removeHandler(responseType, handler);\n reject(new Error('Request timeout: ' + type));\n }, timeout);\n\n function handler(data: Record<string, unknown>) {\n clearTimeout(timer);\n removeHandler(responseType, handler);\n if (data.status === 'success') {\n resolve(data);\n } else {\n reject(new Error((data.errorMessage as string) || 'Request failed'));\n }\n }\n\n on(responseType, handler);\n send(type, params);\n });\n}\n\n// ========== Receive Messages ==========\nfunction handleMessage(data: Record<string, unknown>): void {\n if (!data || !data.type) return;\n const handlers = messageHandlers[data.type as string];\n if (handlers) {\n handlers.forEach((h) => {\n try { h(data); } catch (e: unknown) {\n addLog(LogLevel.ERROR, e instanceof Error ? e.message : String(e));\n }\n });\n }\n}\n\nexport function on(type: string, handler: MessageHandler): () => void {\n if (!messageHandlers[type]) messageHandlers[type] = [];\n messageHandlers[type].push(handler);\n return () => removeHandler(type, handler);\n}\n\nfunction removeHandler(type: string, handler: MessageHandler): void {\n if (!messageHandlers[type]) return;\n messageHandlers[type] = messageHandlers[type].filter((h) => h !== handler);\n}\n\nexport function once(type: string, handler: MessageHandler): () => void {\n const remove = on(type, (data) => { remove(); handler(data); });\n return remove;\n}\n\n// ========== Preset APIs ==========\n\nexport function requestAuthCode(scopes = 'auth_base') {\n return sendAsync('request_authcode', { scopes }, { responseType: 'authcode_response' });\n}\n\nexport function requestLocation(locationType = 0) {\n return sendAsync('request_location', { locationType }, { responseType: 'location_response' });\n}\n\nexport function requestVibrate(vibrateType = 'light') {\n return sendAsync('request_vibrate', { vibrateType }, { responseType: 'vibrate_response' });\n}\n\nexport function setNavbar(params: Record<string, unknown> = {}) {\n return sendAsync('set_navbar', params, { responseType: 'navbar_response' });\n}\n\nexport function setPageTitle(title: string) {\n return sendAsync('page_title', { content: title }, { responseType: 'title_response' });\n}\n\nexport function reloadWebView(url?: string) {\n return sendAsync('reload_webview', url ? { url } : {}, { responseType: 'reload_response' });\n}\n\n// ========== High-frequency APIs ==========\n\nexport function showToast(content?: string, toastType?: string, duration?: number) {\n return sendAsync('showToast', { content: content || '', toastType: toastType || 'none', duration: duration || 2000 }, { responseType: 'showToast_response' });\n}\n\nexport function showLoading(content?: string) {\n return sendAsync('showLoading', { content: content || '加载中...' }, { responseType: 'showLoading_response' });\n}\n\nexport function hideLoading() {\n return sendAsync('hideLoading', {}, { responseType: 'hideLoading_response' });\n}\n\nexport function alert(title?: string, content?: string, buttonText?: string) {\n return sendAsync('alert', { title: title || '', content: content || '', buttonText: buttonText || '确定' }, { responseType: 'alert_response' });\n}\n\nexport function confirm(title?: string, content?: string, confirmButtonText?: string, cancelButtonText?: string) {\n return sendAsync('confirm', {\n title: title || '', content: content || '',\n confirmButtonText: confirmButtonText || '确定', cancelButtonText: cancelButtonText || '取消',\n }, { responseType: 'confirm_response' });\n}\n\nexport function getSystemInfo() {\n return sendAsync('getSystemInfo', {}, { responseType: 'getSystemInfo_response' });\n}\n\nexport function getNetworkType() {\n return sendAsync('getNetworkType', {}, { responseType: 'getNetworkType_response' });\n}\n\nexport function getServerTime() {\n return sendAsync('getServerTime', {}, { responseType: 'getServerTime_response' });\n}\n\nexport function setStorage(key: string, data: unknown) {\n return sendAsync('setStorage', { key, data }, { responseType: 'setStorage_response' });\n}\n\nexport function getStorage(key: string) {\n return sendAsync('getStorage', { key }, { responseType: 'getStorage_response' });\n}\n\nexport function removeStorage(key: string) {\n return sendAsync('removeStorage', { key }, { responseType: 'removeStorage_response' });\n}\n\nexport function setClipboard(text: string) {\n return sendAsync('setClipboard', { text }, { responseType: 'setClipboard_response' });\n}\n\nexport function getClipboard() {\n return sendAsync('getClipboard', {}, { responseType: 'getClipboard_response' });\n}\n\nexport function scan(scanType?: string) {\n return sendAsync('scan', { scanType: scanType || 'qr' }, { responseType: 'scan_response' });\n}\n\nexport function makePhoneCall(number: string) {\n return sendAsync('makePhoneCall', { number }, { responseType: 'makePhoneCall_response' });\n}\n\n// ========== Enhanced APIs ==========\n\nexport function chooseImage(count?: number, sourceType?: string[]) {\n return sendAsync('chooseImage', { count: count || 1, sourceType: sourceType || ['camera', 'album'] }, { responseType: 'chooseImage_response' });\n}\n\nexport function previewImage(urls: string[], current?: number) {\n return sendAsync('previewImage', { urls: urls || [], current: current || 0 }, { responseType: 'previewImage_response' });\n}\n\nexport function saveImage(url: string) {\n return sendAsync('saveImage', { url }, { responseType: 'saveImage_response' });\n}\n\nexport function openLocation(params: Record<string, unknown>) {\n return sendAsync('openLocation', params || {}, { responseType: 'openLocation_response' });\n}\n\nexport function chooseLocation() {\n return sendAsync('chooseLocation', {}, { responseType: 'chooseLocation_response' });\n}\n\nexport function datePicker(format?: string, currentDate?: string) {\n return sendAsync('datePicker', { format: format || 'yyyy-MM-dd', currentDate: currentDate || '' }, { responseType: 'datePicker_response' });\n}\n\nexport function showActionSheet(title?: string, items?: string[], cancelButtonText?: string) {\n return sendAsync('showActionSheet', { title: title || '', items: items || [], cancelButtonText: cancelButtonText || '取消' }, { responseType: 'showActionSheet_response' });\n}\n\nexport function httpRequest(params: Record<string, unknown>) {\n return sendAsync('httpRequest', params || {}, { responseType: 'httpRequest_response' });\n}\n\nexport function tradePay(tradeNO: string) {\n return sendAsync('tradePay', { tradeNO }, { responseType: 'tradePay_response' });\n}\n\n// ========== Sensors ==========\n\nexport function startAccelerometer(interval?: string) {\n return sendAsync('startAccelerometer', { interval: interval || 'normal' }, { responseType: 'startAccelerometer_response' });\n}\n\nexport function stopAccelerometer() {\n return sendAsync('stopAccelerometer', {}, { responseType: 'stopAccelerometer_response' });\n}\n\nexport function onAccelerometerChange(callback: (data: unknown) => void): () => void {\n return on('push', (data) => { if (data.event === 'accelerometerChange') callback(data.data); });\n}\n\nexport function startGyroscope(interval?: string) {\n return sendAsync('startGyroscope', { interval: interval || 'normal' }, { responseType: 'startGyroscope_response' });\n}\n\nexport function stopGyroscope() {\n return sendAsync('stopGyroscope', {}, { responseType: 'stopGyroscope_response' });\n}\n\nexport function onGyroscopeChange(callback: (data: unknown) => void): () => void {\n return on('push', (data) => { if (data.event === 'gyroscopeChange') callback(data.data); });\n}\n\nexport function startCompass(interval?: string) {\n return sendAsync('startCompass', { interval: interval || 'normal' }, { responseType: 'startCompass_response' });\n}\n\nexport function stopCompass() {\n return sendAsync('stopCompass', {}, { responseType: 'stopCompass_response' });\n}\n\nexport function onCompassChange(callback: (data: unknown) => void): () => void {\n return on('push', (data) => { if (data.event === 'compassChange') callback(data.data); });\n}\n\nexport function startDeviceMotionListening(interval?: string) {\n return sendAsync('startDeviceMotionListening', { interval: interval || 'normal' }, { responseType: 'startDeviceMotionListening_response' });\n}\n\nexport function stopDeviceMotionListening() {\n return sendAsync('stopDeviceMotionListening', {}, { responseType: 'stopDeviceMotionListening_response' });\n}\n\nexport function onDeviceMotionChange(callback: (data: unknown) => void): () => void {\n return on('push', (data) => { if (data.event === 'deviceMotionChange') callback(data.data); });\n}\n\n// ========== Bluetooth ==========\n\nexport function openBluetoothAdapter() { return sendAsync('openBluetoothAdapter', {}, { responseType: 'openBluetoothAdapter_response' }); }\nexport function closeBluetoothAdapter() { return sendAsync('closeBluetoothAdapter', {}, { responseType: 'closeBluetoothAdapter_response' }); }\nexport function getBluetoothAdapterState() { return sendAsync('getBluetoothAdapterState', {}, { responseType: 'getBluetoothAdapterState_response' }); }\nexport function startBluetoothDevicesDiscovery(services?: string[]) { return sendAsync('startBluetoothDevicesDiscovery', { services: services || [] }, { responseType: 'startBluetoothDevicesDiscovery_response' }); }\nexport function stopBluetoothDevicesDiscovery() { return sendAsync('stopBluetoothDevicesDiscovery', {}, { responseType: 'stopBluetoothDevicesDiscovery_response' }); }\nexport function getBluetoothDevices() { return sendAsync('getBluetoothDevices', {}, { responseType: 'getBluetoothDevices_response' }); }\nexport function getConnectedBluetoothDevices(services?: string[]) { return sendAsync('getConnectedBluetoothDevices', { services: services || [] }, { responseType: 'getConnectedBluetoothDevices_response' }); }\nexport function connectBLEDevice(deviceId: string) { return sendAsync('connectBLEDevice', { deviceId }, { responseType: 'connectBLEDevice_response' }); }\nexport function disconnectBLEDevice(deviceId: string) { return sendAsync('disconnectBLEDevice', { deviceId }, { responseType: 'disconnectBLEDevice_response' }); }\nexport function getBLEDeviceServices(deviceId: string) { return sendAsync('getBLEDeviceServices', { deviceId }, { responseType: 'getBLEDeviceServices_response' }); }\nexport function getBLEDeviceCharacteristics(deviceId: string, serviceId: string) { return sendAsync('getBLEDeviceCharacteristics', { deviceId, serviceId }, { responseType: 'getBLEDeviceCharacteristics_response' }); }\n\n// ========== WiFi ==========\n\nexport function startWifi() { return sendAsync('startWifi', {}, { responseType: 'startWifi_response' }); }\nexport function stopWifi() { return sendAsync('stopWifi', {}, { responseType: 'stopWifi_response' }); }\nexport function getConnectedWifi() { return sendAsync('getConnectedWifi', {}, { responseType: 'getConnectedWifi_response' }); }\nexport function connectWifi(params: Record<string, unknown>) { return sendAsync('connectWifi', params || {}, { responseType: 'connectWifi_response' }); }\n\n// ========== Bio Auth ==========\n\nexport function checkBioAuthMode() { return sendAsync('checkBioAuthMode', {}, { responseType: 'checkBioAuthMode_response' }); }\nexport function startBioAuth(authType?: string) { return sendAsync('startBioAuth', { type: authType || 'fingerPrint' }, { responseType: 'startBioAuth_response' }); }\n\n// ========== Navigation & Misc ==========\n\nexport function navigateTo(url: string) { return sendAsync('navigateTo', { url }, { responseType: 'navigateTo_response' }); }\nexport function navigateBack(delta?: number) { return sendAsync('navigateBack', { delta: delta || 1 }, { responseType: 'navigateBack_response' }); }\nexport function navigateToMiniProgram(appId: string, path?: string, extraData?: Record<string, unknown>) {\n return sendAsync('navigateToMiniProgram', { appId, path: path || '', extraData: extraData || {} }, { responseType: 'navigateToMiniProgram_response' });\n}\nexport function getScreenBrightness() { return sendAsync('getScreenBrightness', {}, { responseType: 'getScreenBrightness_response' }); }\nexport function setScreenBrightness(brightness: number) { return sendAsync('setScreenBrightness', { brightness }, { responseType: 'setScreenBrightness_response' }); }\nexport function setKeepScreenOn(keepScreenOn: boolean) { return sendAsync('setKeepScreenOn', { keepScreenOn: keepScreenOn !== false }, { responseType: 'setKeepScreenOn_response' }); }\nexport function addPhoneCalendar(params: Record<string, unknown>) { return sendAsync('addPhoneCalendar', params || {}, { responseType: 'addPhoneCalendar_response' }); }\nexport function getAddress() { return sendAsync('getAddress', {}, { responseType: 'getAddress_response' }); }\nexport function choosePhoneContact() { return sendAsync('choosePhoneContact', {}, { responseType: 'choosePhoneContact_response' }); }\nexport function chooseAlipayContact(count?: number) { return sendAsync('chooseAlipayContact', { count: count || 1 }, { responseType: 'chooseAlipayContact_response' }); }\nexport function getRunData(params?: Record<string, unknown>) { return sendAsync('getRunData', params || {}, { responseType: 'getRunData_response' }); }\nexport function getOpenUserInfo() { return sendAsync('getOpenUserInfo', {}, { responseType: 'getOpenUserInfo_response' }); }\nexport function getPhoneNumber() { return sendAsync('getPhoneNumber', {}, { responseType: 'getPhoneNumber_response' }); }\nexport function getBatteryInfo() { return sendAsync('getBatteryInfo', {}, { responseType: 'getBatteryInfo_response' }); }\nexport function startPullDownRefresh() { return sendAsync('startPullDownRefresh', {}, { responseType: 'startPullDownRefresh_response' }); }\nexport function stopPullDownRefresh() { return sendAsync('stopPullDownRefresh', {}, { responseType: 'stopPullDownRefresh_response' }); }\n"],"names":["isReady","messageHandlers","logListeners","LogLevel","INFO","WARN","ERROR","SUCCESS","SEND","RECV","logs","addLog","level","msg","data","log","time","Date","toLocaleTimeString","unshift","length","slice","forEach","fn","_a","isInMiniprogram","window","my","postMessage","send","type","params","Object","assign","JSON","stringify","e","Error","message","String","sendAsync","opts","timeout","responseType","replace","Promise","resolve","reject","timer","setTimeout","removeHandler","handler","clearTimeout","status","errorMessage","on","push","filter","h","splice","indexOf","title","content","buttonText","count","sourceType","confirmButtonText","cancelButtonText","deviceId","format","currentDate","serviceId","services","key","script","document","createElement","src","onload","onerror","head","appendChild","then","onMessage","handlers","handleMessage","number","delta","url","appId","path","extraData","callback","event","remove","urls","current","scopes","locationType","vibrateType","scanType","text","keepScreenOn","brightness","items","toastType","duration","interval","authType","tradeNO"],"mappings":"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"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
declare global {
|
|
2
|
+
interface Window {
|
|
3
|
+
my?: {
|
|
4
|
+
postMessage: (data: Record<string, unknown>) => void;
|
|
5
|
+
onMessage: ((e: Record<string, unknown>) => void) | null;
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export interface LogEntry {
|
|
10
|
+
time: string;
|
|
11
|
+
level: string;
|
|
12
|
+
msg: string;
|
|
13
|
+
data?: unknown;
|
|
14
|
+
}
|
|
15
|
+
export type LogListener = (log: LogEntry, all: LogEntry[]) => void;
|
|
16
|
+
export type MessageHandler = (data: Record<string, unknown>) => void;
|
|
17
|
+
export interface SendAsyncOptions {
|
|
18
|
+
timeout?: number;
|
|
19
|
+
responseType?: string;
|
|
20
|
+
}
|
|
21
|
+
export declare const LogLevel: {
|
|
22
|
+
readonly INFO: "info";
|
|
23
|
+
readonly WARN: "warn";
|
|
24
|
+
readonly ERROR: "error";
|
|
25
|
+
readonly SUCCESS: "success";
|
|
26
|
+
readonly SEND: "send";
|
|
27
|
+
readonly RECV: "recv";
|
|
28
|
+
};
|
|
29
|
+
export declare function addLog(level: string, msg: string, data?: unknown): void;
|
|
30
|
+
export declare function addLogListener(fn: LogListener): () => void;
|
|
31
|
+
export declare function getLogs(): LogEntry[];
|
|
32
|
+
export declare function clearLogs(): void;
|
|
33
|
+
export declare function isInMiniprogram(): boolean;
|
|
34
|
+
export declare function init(): Promise<void>;
|
|
35
|
+
export declare function send(type: string, params?: Record<string, unknown>): void;
|
|
36
|
+
export declare function sendAsync(type: string, params?: Record<string, unknown>, opts?: SendAsyncOptions): Promise<Record<string, unknown>>;
|
|
37
|
+
export declare function on(type: string, handler: MessageHandler): () => void;
|
|
38
|
+
export declare function once(type: string, handler: MessageHandler): () => void;
|
|
39
|
+
export declare function requestAuthCode(scopes?: string): Promise<Record<string, unknown>>;
|
|
40
|
+
export declare function requestLocation(locationType?: number): Promise<Record<string, unknown>>;
|
|
41
|
+
export declare function requestVibrate(vibrateType?: string): Promise<Record<string, unknown>>;
|
|
42
|
+
export declare function setNavbar(params?: Record<string, unknown>): Promise<Record<string, unknown>>;
|
|
43
|
+
export declare function setPageTitle(title: string): Promise<Record<string, unknown>>;
|
|
44
|
+
export declare function reloadWebView(url?: string): Promise<Record<string, unknown>>;
|
|
45
|
+
export declare function showToast(content?: string, toastType?: string, duration?: number): Promise<Record<string, unknown>>;
|
|
46
|
+
export declare function showLoading(content?: string): Promise<Record<string, unknown>>;
|
|
47
|
+
export declare function hideLoading(): Promise<Record<string, unknown>>;
|
|
48
|
+
export declare function alert(title?: string, content?: string, buttonText?: string): Promise<Record<string, unknown>>;
|
|
49
|
+
export declare function confirm(title?: string, content?: string, confirmButtonText?: string, cancelButtonText?: string): Promise<Record<string, unknown>>;
|
|
50
|
+
export declare function getSystemInfo(): Promise<Record<string, unknown>>;
|
|
51
|
+
export declare function getNetworkType(): Promise<Record<string, unknown>>;
|
|
52
|
+
export declare function getServerTime(): Promise<Record<string, unknown>>;
|
|
53
|
+
export declare function setStorage(key: string, data: unknown): Promise<Record<string, unknown>>;
|
|
54
|
+
export declare function getStorage(key: string): Promise<Record<string, unknown>>;
|
|
55
|
+
export declare function removeStorage(key: string): Promise<Record<string, unknown>>;
|
|
56
|
+
export declare function setClipboard(text: string): Promise<Record<string, unknown>>;
|
|
57
|
+
export declare function getClipboard(): Promise<Record<string, unknown>>;
|
|
58
|
+
export declare function scan(scanType?: string): Promise<Record<string, unknown>>;
|
|
59
|
+
export declare function makePhoneCall(number: string): Promise<Record<string, unknown>>;
|
|
60
|
+
export declare function chooseImage(count?: number, sourceType?: string[]): Promise<Record<string, unknown>>;
|
|
61
|
+
export declare function previewImage(urls: string[], current?: number): Promise<Record<string, unknown>>;
|
|
62
|
+
export declare function saveImage(url: string): Promise<Record<string, unknown>>;
|
|
63
|
+
export declare function openLocation(params: Record<string, unknown>): Promise<Record<string, unknown>>;
|
|
64
|
+
export declare function chooseLocation(): Promise<Record<string, unknown>>;
|
|
65
|
+
export declare function datePicker(format?: string, currentDate?: string): Promise<Record<string, unknown>>;
|
|
66
|
+
export declare function showActionSheet(title?: string, items?: string[], cancelButtonText?: string): Promise<Record<string, unknown>>;
|
|
67
|
+
export declare function httpRequest(params: Record<string, unknown>): Promise<Record<string, unknown>>;
|
|
68
|
+
export declare function tradePay(tradeNO: string): Promise<Record<string, unknown>>;
|
|
69
|
+
export declare function startAccelerometer(interval?: string): Promise<Record<string, unknown>>;
|
|
70
|
+
export declare function stopAccelerometer(): Promise<Record<string, unknown>>;
|
|
71
|
+
export declare function onAccelerometerChange(callback: (data: unknown) => void): () => void;
|
|
72
|
+
export declare function startGyroscope(interval?: string): Promise<Record<string, unknown>>;
|
|
73
|
+
export declare function stopGyroscope(): Promise<Record<string, unknown>>;
|
|
74
|
+
export declare function onGyroscopeChange(callback: (data: unknown) => void): () => void;
|
|
75
|
+
export declare function startCompass(interval?: string): Promise<Record<string, unknown>>;
|
|
76
|
+
export declare function stopCompass(): Promise<Record<string, unknown>>;
|
|
77
|
+
export declare function onCompassChange(callback: (data: unknown) => void): () => void;
|
|
78
|
+
export declare function startDeviceMotionListening(interval?: string): Promise<Record<string, unknown>>;
|
|
79
|
+
export declare function stopDeviceMotionListening(): Promise<Record<string, unknown>>;
|
|
80
|
+
export declare function onDeviceMotionChange(callback: (data: unknown) => void): () => void;
|
|
81
|
+
export declare function openBluetoothAdapter(): Promise<Record<string, unknown>>;
|
|
82
|
+
export declare function closeBluetoothAdapter(): Promise<Record<string, unknown>>;
|
|
83
|
+
export declare function getBluetoothAdapterState(): Promise<Record<string, unknown>>;
|
|
84
|
+
export declare function startBluetoothDevicesDiscovery(services?: string[]): Promise<Record<string, unknown>>;
|
|
85
|
+
export declare function stopBluetoothDevicesDiscovery(): Promise<Record<string, unknown>>;
|
|
86
|
+
export declare function getBluetoothDevices(): Promise<Record<string, unknown>>;
|
|
87
|
+
export declare function getConnectedBluetoothDevices(services?: string[]): Promise<Record<string, unknown>>;
|
|
88
|
+
export declare function connectBLEDevice(deviceId: string): Promise<Record<string, unknown>>;
|
|
89
|
+
export declare function disconnectBLEDevice(deviceId: string): Promise<Record<string, unknown>>;
|
|
90
|
+
export declare function getBLEDeviceServices(deviceId: string): Promise<Record<string, unknown>>;
|
|
91
|
+
export declare function getBLEDeviceCharacteristics(deviceId: string, serviceId: string): Promise<Record<string, unknown>>;
|
|
92
|
+
export declare function startWifi(): Promise<Record<string, unknown>>;
|
|
93
|
+
export declare function stopWifi(): Promise<Record<string, unknown>>;
|
|
94
|
+
export declare function getConnectedWifi(): Promise<Record<string, unknown>>;
|
|
95
|
+
export declare function connectWifi(params: Record<string, unknown>): Promise<Record<string, unknown>>;
|
|
96
|
+
export declare function checkBioAuthMode(): Promise<Record<string, unknown>>;
|
|
97
|
+
export declare function startBioAuth(authType?: string): Promise<Record<string, unknown>>;
|
|
98
|
+
export declare function navigateTo(url: string): Promise<Record<string, unknown>>;
|
|
99
|
+
export declare function navigateBack(delta?: number): Promise<Record<string, unknown>>;
|
|
100
|
+
export declare function navigateToMiniProgram(appId: string, path?: string, extraData?: Record<string, unknown>): Promise<Record<string, unknown>>;
|
|
101
|
+
export declare function getScreenBrightness(): Promise<Record<string, unknown>>;
|
|
102
|
+
export declare function setScreenBrightness(brightness: number): Promise<Record<string, unknown>>;
|
|
103
|
+
export declare function setKeepScreenOn(keepScreenOn: boolean): Promise<Record<string, unknown>>;
|
|
104
|
+
export declare function addPhoneCalendar(params: Record<string, unknown>): Promise<Record<string, unknown>>;
|
|
105
|
+
export declare function getAddress(): Promise<Record<string, unknown>>;
|
|
106
|
+
export declare function choosePhoneContact(): Promise<Record<string, unknown>>;
|
|
107
|
+
export declare function chooseAlipayContact(count?: number): Promise<Record<string, unknown>>;
|
|
108
|
+
export declare function getRunData(params?: Record<string, unknown>): Promise<Record<string, unknown>>;
|
|
109
|
+
export declare function getOpenUserInfo(): Promise<Record<string, unknown>>;
|
|
110
|
+
export declare function getPhoneNumber(): Promise<Record<string, unknown>>;
|
|
111
|
+
export declare function getBatteryInfo(): Promise<Record<string, unknown>>;
|
|
112
|
+
export declare function startPullDownRefresh(): Promise<Record<string, unknown>>;
|
|
113
|
+
export declare function stopPullDownRefresh(): Promise<Record<string, unknown>>;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
let e=!1;const n={},t=[],r={INFO:"info",WARN:"warn",ERROR:"error",SUCCESS:"success",SEND:"send",RECV:"recv"};let o=[];function s(e,n,r=null){const s={time:(new Date).toLocaleTimeString(),level:e,msg:n,data:r};o.unshift(s),o.length>100&&(o=o.slice(0,100)),t.forEach(e=>{try{e(s,o)}catch(e){}})}function p(e){return t.push(e),()=>{t.splice(t.indexOf(e),1)}}function i(){return[...o]}function c(){o=[]}function u(){return!(!window.my||!window.my.postMessage)}function a(){return e?Promise.resolve():new Promise(e=>{var n;if(null===(n=window.my)||void 0===n?void 0:n.postMessage)return void e();const t=document.createElement("script");t.src="https://appx/web-view.min.js",t.onload=()=>{s(r.INFO,"web-view.min.js loaded"),e()},t.onerror=()=>{s(r.WARN,"Failed to load web-view.min.js (not in miniprogram)"),e()},document.head.appendChild(t)}).then(()=>{u()?(window.my.onMessage=e=>{s(r.RECV,"[Mini→H5] "+JSON.stringify(e)),function(e){if(!e||!e.type)return;const t=n[e.type];t&&t.forEach(n=>{try{n(e)}catch(e){s(r.ERROR,e instanceof Error?e.message:String(e))}})}(e)},e=!0,s(r.SUCCESS,"SDK initialized")):s(r.WARN,"Not in miniprogram environment")})}function f(e,n={}){const t=Object.assign({type:e},n);if(s(r.SEND,"[H5→Mini] "+JSON.stringify(t)),u())try{window.my.postMessage(t)}catch(e){s(r.ERROR,"postMessage failed: "+(e instanceof Error?e.message:String(e)))}else s(r.WARN,"(Not in miniprogram, message not sent)")}function y(e,n={},t={}){const r=t.timeout||3e4,o=t.responseType||e.replace(/^request_/,"")+"_response";return new Promise((t,s)=>{const p=setTimeout(()=>{g(o,i),s(new Error("Request timeout: "+e))},r);function i(e){clearTimeout(p),g(o,i),"success"===e.status?t(e):s(new Error(e.errorMessage||"Request failed"))}l(o,i),f(e,n)})}function l(e,t){return n[e]||(n[e]=[]),n[e].push(t),()=>g(e,t)}function g(e,t){n[e]&&(n[e]=n[e].filter(e=>e!==t))}function T(e,n){const t=l(e,e=>{t(),n(e)});return t}function d(e="auth_base"){return y("request_authcode",{scopes:e},{responseType:"authcode_response"})}function h(e=0){return y("request_location",{locationType:e},{responseType:"location_response"})}function _(e="light"){return y("request_vibrate",{vibrateType:e},{responseType:"vibrate_response"})}function v(e={}){return y("set_navbar",e,{responseType:"navbar_response"})}function m(e){return y("page_title",{content:e},{responseType:"title_response"})}function w(e){return y("reload_webview",e?{url:e}:{},{responseType:"reload_response"})}function B(e,n,t){return y("showToast",{content:e||"",toastType:n||"none",duration:t||2e3},{responseType:"showToast_response"})}function S(e){return y("showLoading",{content:e||"加载中..."},{responseType:"showLoading_response"})}function D(){return y("hideLoading",{},{responseType:"hideLoading_response"})}function C(e,n,t){return y("alert",{title:e||"",content:n||"",buttonText:t||"确定"},{responseType:"alert_response"})}function R(e,n,t,r){return y("confirm",{title:e||"",content:n||"",confirmButtonText:t||"确定",cancelButtonText:r||"取消"},{responseType:"confirm_response"})}function A(){return y("getSystemInfo",{},{responseType:"getSystemInfo_response"})}function E(){return y("getNetworkType",{},{responseType:"getNetworkType_response"})}function P(){return y("getServerTime",{},{responseType:"getServerTime_response"})}function b(e,n){return y("setStorage",{key:e,data:n},{responseType:"setStorage_response"})}function L(e){return y("getStorage",{key:e},{responseType:"getStorage_response"})}function I(e){return y("removeStorage",{key:e},{responseType:"removeStorage_response"})}function M(e){return y("setClipboard",{text:e},{responseType:"setClipboard_response"})}function N(){return y("getClipboard",{},{responseType:"getClipboard_response"})}function O(e){return y("scan",{scanType:e||"qr"},{responseType:"scan_response"})}function k(e){return y("makePhoneCall",{number:e},{responseType:"makePhoneCall_response"})}function W(e,n){return y("chooseImage",{count:e||1,sourceType:n||["camera","album"]},{responseType:"chooseImage_response"})}function q(e,n){return y("previewImage",{urls:e||[],current:n||0},{responseType:"previewImage_response"})}function x(e){return y("saveImage",{url:e},{responseType:"saveImage_response"})}function j(e){return y("openLocation",e||{},{responseType:"openLocation_response"})}function G(){return y("chooseLocation",{},{responseType:"chooseLocation_response"})}function U(e,n){return y("datePicker",{format:e||"yyyy-MM-dd",currentDate:n||""},{responseType:"datePicker_response"})}function F(e,n,t){return y("showActionSheet",{title:e||"",items:n||[],cancelButtonText:t||"取消"},{responseType:"showActionSheet_response"})}function K(e){return y("httpRequest",e||{},{responseType:"httpRequest_response"})}function H(e){return y("tradePay",{tradeNO:e},{responseType:"tradePay_response"})}function J(e){return y("startAccelerometer",{interval:e||"normal"},{responseType:"startAccelerometer_response"})}function V(){return y("stopAccelerometer",{},{responseType:"stopAccelerometer_response"})}function z(e){return l("push",n=>{"accelerometerChange"===n.event&&e(n.data)})}function Q(e){return y("startGyroscope",{interval:e||"normal"},{responseType:"startGyroscope_response"})}function X(){return y("stopGyroscope",{},{responseType:"stopGyroscope_response"})}function Y(e){return l("push",n=>{"gyroscopeChange"===n.event&&e(n.data)})}function Z(e){return y("startCompass",{interval:e||"normal"},{responseType:"startCompass_response"})}function $(){return y("stopCompass",{},{responseType:"stopCompass_response"})}function ee(e){return l("push",n=>{"compassChange"===n.event&&e(n.data)})}function ne(e){return y("startDeviceMotionListening",{interval:e||"normal"},{responseType:"startDeviceMotionListening_response"})}function te(){return y("stopDeviceMotionListening",{},{responseType:"stopDeviceMotionListening_response"})}function re(e){return l("push",n=>{"deviceMotionChange"===n.event&&e(n.data)})}function oe(){return y("openBluetoothAdapter",{},{responseType:"openBluetoothAdapter_response"})}function se(){return y("closeBluetoothAdapter",{},{responseType:"closeBluetoothAdapter_response"})}function pe(){return y("getBluetoothAdapterState",{},{responseType:"getBluetoothAdapterState_response"})}function ie(e){return y("startBluetoothDevicesDiscovery",{services:e||[]},{responseType:"startBluetoothDevicesDiscovery_response"})}function ce(){return y("stopBluetoothDevicesDiscovery",{},{responseType:"stopBluetoothDevicesDiscovery_response"})}function ue(){return y("getBluetoothDevices",{},{responseType:"getBluetoothDevices_response"})}function ae(e){return y("getConnectedBluetoothDevices",{services:e||[]},{responseType:"getConnectedBluetoothDevices_response"})}function fe(e){return y("connectBLEDevice",{deviceId:e},{responseType:"connectBLEDevice_response"})}function ye(e){return y("disconnectBLEDevice",{deviceId:e},{responseType:"disconnectBLEDevice_response"})}function le(e){return y("getBLEDeviceServices",{deviceId:e},{responseType:"getBLEDeviceServices_response"})}function ge(e,n){return y("getBLEDeviceCharacteristics",{deviceId:e,serviceId:n},{responseType:"getBLEDeviceCharacteristics_response"})}function Te(){return y("startWifi",{},{responseType:"startWifi_response"})}function de(){return y("stopWifi",{},{responseType:"stopWifi_response"})}function he(){return y("getConnectedWifi",{},{responseType:"getConnectedWifi_response"})}function _e(e){return y("connectWifi",e||{},{responseType:"connectWifi_response"})}function ve(){return y("checkBioAuthMode",{},{responseType:"checkBioAuthMode_response"})}function me(e){return y("startBioAuth",{type:e||"fingerPrint"},{responseType:"startBioAuth_response"})}function we(e){return y("navigateTo",{url:e},{responseType:"navigateTo_response"})}function Be(e){return y("navigateBack",{delta:e||1},{responseType:"navigateBack_response"})}function Se(e,n,t){return y("navigateToMiniProgram",{appId:e,path:n||"",extraData:t||{}},{responseType:"navigateToMiniProgram_response"})}function De(){return y("getScreenBrightness",{},{responseType:"getScreenBrightness_response"})}function Ce(e){return y("setScreenBrightness",{brightness:e},{responseType:"setScreenBrightness_response"})}function Re(e){return y("setKeepScreenOn",{keepScreenOn:!1!==e},{responseType:"setKeepScreenOn_response"})}function Ae(e){return y("addPhoneCalendar",e||{},{responseType:"addPhoneCalendar_response"})}function Ee(){return y("getAddress",{},{responseType:"getAddress_response"})}function Pe(){return y("choosePhoneContact",{},{responseType:"choosePhoneContact_response"})}function be(e){return y("chooseAlipayContact",{count:e||1},{responseType:"chooseAlipayContact_response"})}function Le(e){return y("getRunData",e||{},{responseType:"getRunData_response"})}function Ie(){return y("getOpenUserInfo",{},{responseType:"getOpenUserInfo_response"})}function Me(){return y("getPhoneNumber",{},{responseType:"getPhoneNumber_response"})}function Ne(){return y("getBatteryInfo",{},{responseType:"getBatteryInfo_response"})}function Oe(){return y("startPullDownRefresh",{},{responseType:"startPullDownRefresh_response"})}function ke(){return y("stopPullDownRefresh",{},{responseType:"stopPullDownRefresh_response"})}export{r as LogLevel,s as addLog,p as addLogListener,Ae as addPhoneCalendar,C as alert,ve as checkBioAuthMode,be as chooseAlipayContact,W as chooseImage,G as chooseLocation,Pe as choosePhoneContact,c as clearLogs,se as closeBluetoothAdapter,R as confirm,fe as connectBLEDevice,_e as connectWifi,U as datePicker,ye as disconnectBLEDevice,Ee as getAddress,ge as getBLEDeviceCharacteristics,le as getBLEDeviceServices,Ne as getBatteryInfo,pe as getBluetoothAdapterState,ue as getBluetoothDevices,N as getClipboard,ae as getConnectedBluetoothDevices,he as getConnectedWifi,i as getLogs,E as getNetworkType,Ie as getOpenUserInfo,Me as getPhoneNumber,Le as getRunData,De as getScreenBrightness,P as getServerTime,L as getStorage,A as getSystemInfo,D as hideLoading,K as httpRequest,a as init,u as isInMiniprogram,k as makePhoneCall,Be as navigateBack,we as navigateTo,Se as navigateToMiniProgram,l as on,z as onAccelerometerChange,ee as onCompassChange,re as onDeviceMotionChange,Y as onGyroscopeChange,T as once,oe as openBluetoothAdapter,j as openLocation,q as previewImage,w as reloadWebView,I as removeStorage,d as requestAuthCode,h as requestLocation,_ as requestVibrate,x as saveImage,O as scan,f as send,y as sendAsync,M as setClipboard,Re as setKeepScreenOn,v as setNavbar,m as setPageTitle,Ce as setScreenBrightness,b as setStorage,F as showActionSheet,S as showLoading,B as showToast,J as startAccelerometer,me as startBioAuth,ie as startBluetoothDevicesDiscovery,Z as startCompass,ne as startDeviceMotionListening,Q as startGyroscope,Oe as startPullDownRefresh,Te as startWifi,V as stopAccelerometer,ce as stopBluetoothDevicesDiscovery,$ as stopCompass,te as stopDeviceMotionListening,X as stopGyroscope,ke as stopPullDownRefresh,de as stopWifi,H as tradePay};
|
|
2
|
+
//# sourceMappingURL=index.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../../src/src/h5/index.ts"],"sourcesContent":["declare global {\n interface Window {\n my?: {\n postMessage: (data: Record<string, unknown>) => void;\n onMessage: ((e: Record<string, unknown>) => void) | null;\n };\n }\n}\n\nexport interface LogEntry {\n time: string;\n level: string;\n msg: string;\n data?: unknown;\n}\n\nexport type LogListener = (log: LogEntry, all: LogEntry[]) => void;\nexport type MessageHandler = (data: Record<string, unknown>) => void;\n\nexport interface SendAsyncOptions {\n timeout?: number;\n responseType?: string;\n}\n\n// ========== State ==========\nlet isReady = false;\nconst messageHandlers: Record<string, MessageHandler[]> = {};\nconst logListeners: LogListener[] = [];\n\n// ========== Logging ==========\nexport const LogLevel = {\n INFO: 'info',\n WARN: 'warn',\n ERROR: 'error',\n SUCCESS: 'success',\n SEND: 'send',\n RECV: 'recv',\n} as const;\n\nlet logs: LogEntry[] = [];\nconst MAX_LOGS = 100;\n\nexport function addLog(level: string, msg: string, data: unknown = null): void {\n const log: LogEntry = { time: new Date().toLocaleTimeString(), level, msg, data };\n logs.unshift(log);\n if (logs.length > MAX_LOGS) logs = logs.slice(0, MAX_LOGS);\n logListeners.forEach((fn) => {\n try { fn(log, logs); } catch { /* ignore */ }\n });\n}\n\nexport function addLogListener(fn: LogListener): () => void {\n logListeners.push(fn);\n return () => { logListeners.splice(logListeners.indexOf(fn), 1); };\n}\n\nexport function getLogs(): LogEntry[] { return [...logs]; }\nexport function clearLogs(): void { logs = []; }\n\n// ========== Environment Detection ==========\nexport function isInMiniprogram(): boolean {\n return !!(window.my && window.my.postMessage);\n}\n\n// ========== Dynamic Bridge Loading ==========\nconst BRIDGE_URL = 'https://appx/web-view.min.js';\n\nfunction loadBridgeScript(): Promise<void> {\n return new Promise((resolve) => {\n if (window.my?.postMessage) {\n resolve();\n return;\n }\n const script = document.createElement('script');\n script.src = BRIDGE_URL;\n script.onload = () => {\n addLog(LogLevel.INFO, 'web-view.min.js loaded');\n resolve();\n };\n script.onerror = () => {\n addLog(LogLevel.WARN, 'Failed to load web-view.min.js (not in miniprogram)');\n resolve();\n };\n document.head.appendChild(script);\n });\n}\n\n// ========== Init ==========\nexport function init(): Promise<void> {\n if (isReady) return Promise.resolve();\n\n return loadBridgeScript().then(() => {\n if (isInMiniprogram()) {\n window.my!.onMessage = (e: Record<string, unknown>) => {\n addLog(LogLevel.RECV, '[Mini→H5] ' + JSON.stringify(e));\n handleMessage(e);\n };\n isReady = true;\n addLog(LogLevel.SUCCESS, 'SDK initialized');\n } else {\n addLog(LogLevel.WARN, 'Not in miniprogram environment');\n }\n });\n}\n\n// ========== Send Messages ==========\nexport function send(type: string, params: Record<string, unknown> = {}): void {\n const data = { type, ...params };\n addLog(LogLevel.SEND, '[H5→Mini] ' + JSON.stringify(data));\n if (isInMiniprogram()) {\n try {\n window.my!.postMessage(data);\n } catch (e: unknown) {\n addLog(LogLevel.ERROR, 'postMessage failed: ' + (e instanceof Error ? e.message : String(e)));\n }\n } else {\n addLog(LogLevel.WARN, '(Not in miniprogram, message not sent)');\n }\n}\n\nexport function sendAsync(type: string, params: Record<string, unknown> = {}, opts: SendAsyncOptions = {}): Promise<Record<string, unknown>> {\n const timeout = opts.timeout || 30000;\n const responseType = opts.responseType || (type.replace(/^request_/, '') + '_response');\n\n return new Promise((resolve, reject) => {\n const timer = setTimeout(() => {\n removeHandler(responseType, handler);\n reject(new Error('Request timeout: ' + type));\n }, timeout);\n\n function handler(data: Record<string, unknown>) {\n clearTimeout(timer);\n removeHandler(responseType, handler);\n if (data.status === 'success') {\n resolve(data);\n } else {\n reject(new Error((data.errorMessage as string) || 'Request failed'));\n }\n }\n\n on(responseType, handler);\n send(type, params);\n });\n}\n\n// ========== Receive Messages ==========\nfunction handleMessage(data: Record<string, unknown>): void {\n if (!data || !data.type) return;\n const handlers = messageHandlers[data.type as string];\n if (handlers) {\n handlers.forEach((h) => {\n try { h(data); } catch (e: unknown) {\n addLog(LogLevel.ERROR, e instanceof Error ? e.message : String(e));\n }\n });\n }\n}\n\nexport function on(type: string, handler: MessageHandler): () => void {\n if (!messageHandlers[type]) messageHandlers[type] = [];\n messageHandlers[type].push(handler);\n return () => removeHandler(type, handler);\n}\n\nfunction removeHandler(type: string, handler: MessageHandler): void {\n if (!messageHandlers[type]) return;\n messageHandlers[type] = messageHandlers[type].filter((h) => h !== handler);\n}\n\nexport function once(type: string, handler: MessageHandler): () => void {\n const remove = on(type, (data) => { remove(); handler(data); });\n return remove;\n}\n\n// ========== Preset APIs ==========\n\nexport function requestAuthCode(scopes = 'auth_base') {\n return sendAsync('request_authcode', { scopes }, { responseType: 'authcode_response' });\n}\n\nexport function requestLocation(locationType = 0) {\n return sendAsync('request_location', { locationType }, { responseType: 'location_response' });\n}\n\nexport function requestVibrate(vibrateType = 'light') {\n return sendAsync('request_vibrate', { vibrateType }, { responseType: 'vibrate_response' });\n}\n\nexport function setNavbar(params: Record<string, unknown> = {}) {\n return sendAsync('set_navbar', params, { responseType: 'navbar_response' });\n}\n\nexport function setPageTitle(title: string) {\n return sendAsync('page_title', { content: title }, { responseType: 'title_response' });\n}\n\nexport function reloadWebView(url?: string) {\n return sendAsync('reload_webview', url ? { url } : {}, { responseType: 'reload_response' });\n}\n\n// ========== High-frequency APIs ==========\n\nexport function showToast(content?: string, toastType?: string, duration?: number) {\n return sendAsync('showToast', { content: content || '', toastType: toastType || 'none', duration: duration || 2000 }, { responseType: 'showToast_response' });\n}\n\nexport function showLoading(content?: string) {\n return sendAsync('showLoading', { content: content || '加载中...' }, { responseType: 'showLoading_response' });\n}\n\nexport function hideLoading() {\n return sendAsync('hideLoading', {}, { responseType: 'hideLoading_response' });\n}\n\nexport function alert(title?: string, content?: string, buttonText?: string) {\n return sendAsync('alert', { title: title || '', content: content || '', buttonText: buttonText || '确定' }, { responseType: 'alert_response' });\n}\n\nexport function confirm(title?: string, content?: string, confirmButtonText?: string, cancelButtonText?: string) {\n return sendAsync('confirm', {\n title: title || '', content: content || '',\n confirmButtonText: confirmButtonText || '确定', cancelButtonText: cancelButtonText || '取消',\n }, { responseType: 'confirm_response' });\n}\n\nexport function getSystemInfo() {\n return sendAsync('getSystemInfo', {}, { responseType: 'getSystemInfo_response' });\n}\n\nexport function getNetworkType() {\n return sendAsync('getNetworkType', {}, { responseType: 'getNetworkType_response' });\n}\n\nexport function getServerTime() {\n return sendAsync('getServerTime', {}, { responseType: 'getServerTime_response' });\n}\n\nexport function setStorage(key: string, data: unknown) {\n return sendAsync('setStorage', { key, data }, { responseType: 'setStorage_response' });\n}\n\nexport function getStorage(key: string) {\n return sendAsync('getStorage', { key }, { responseType: 'getStorage_response' });\n}\n\nexport function removeStorage(key: string) {\n return sendAsync('removeStorage', { key }, { responseType: 'removeStorage_response' });\n}\n\nexport function setClipboard(text: string) {\n return sendAsync('setClipboard', { text }, { responseType: 'setClipboard_response' });\n}\n\nexport function getClipboard() {\n return sendAsync('getClipboard', {}, { responseType: 'getClipboard_response' });\n}\n\nexport function scan(scanType?: string) {\n return sendAsync('scan', { scanType: scanType || 'qr' }, { responseType: 'scan_response' });\n}\n\nexport function makePhoneCall(number: string) {\n return sendAsync('makePhoneCall', { number }, { responseType: 'makePhoneCall_response' });\n}\n\n// ========== Enhanced APIs ==========\n\nexport function chooseImage(count?: number, sourceType?: string[]) {\n return sendAsync('chooseImage', { count: count || 1, sourceType: sourceType || ['camera', 'album'] }, { responseType: 'chooseImage_response' });\n}\n\nexport function previewImage(urls: string[], current?: number) {\n return sendAsync('previewImage', { urls: urls || [], current: current || 0 }, { responseType: 'previewImage_response' });\n}\n\nexport function saveImage(url: string) {\n return sendAsync('saveImage', { url }, { responseType: 'saveImage_response' });\n}\n\nexport function openLocation(params: Record<string, unknown>) {\n return sendAsync('openLocation', params || {}, { responseType: 'openLocation_response' });\n}\n\nexport function chooseLocation() {\n return sendAsync('chooseLocation', {}, { responseType: 'chooseLocation_response' });\n}\n\nexport function datePicker(format?: string, currentDate?: string) {\n return sendAsync('datePicker', { format: format || 'yyyy-MM-dd', currentDate: currentDate || '' }, { responseType: 'datePicker_response' });\n}\n\nexport function showActionSheet(title?: string, items?: string[], cancelButtonText?: string) {\n return sendAsync('showActionSheet', { title: title || '', items: items || [], cancelButtonText: cancelButtonText || '取消' }, { responseType: 'showActionSheet_response' });\n}\n\nexport function httpRequest(params: Record<string, unknown>) {\n return sendAsync('httpRequest', params || {}, { responseType: 'httpRequest_response' });\n}\n\nexport function tradePay(tradeNO: string) {\n return sendAsync('tradePay', { tradeNO }, { responseType: 'tradePay_response' });\n}\n\n// ========== Sensors ==========\n\nexport function startAccelerometer(interval?: string) {\n return sendAsync('startAccelerometer', { interval: interval || 'normal' }, { responseType: 'startAccelerometer_response' });\n}\n\nexport function stopAccelerometer() {\n return sendAsync('stopAccelerometer', {}, { responseType: 'stopAccelerometer_response' });\n}\n\nexport function onAccelerometerChange(callback: (data: unknown) => void): () => void {\n return on('push', (data) => { if (data.event === 'accelerometerChange') callback(data.data); });\n}\n\nexport function startGyroscope(interval?: string) {\n return sendAsync('startGyroscope', { interval: interval || 'normal' }, { responseType: 'startGyroscope_response' });\n}\n\nexport function stopGyroscope() {\n return sendAsync('stopGyroscope', {}, { responseType: 'stopGyroscope_response' });\n}\n\nexport function onGyroscopeChange(callback: (data: unknown) => void): () => void {\n return on('push', (data) => { if (data.event === 'gyroscopeChange') callback(data.data); });\n}\n\nexport function startCompass(interval?: string) {\n return sendAsync('startCompass', { interval: interval || 'normal' }, { responseType: 'startCompass_response' });\n}\n\nexport function stopCompass() {\n return sendAsync('stopCompass', {}, { responseType: 'stopCompass_response' });\n}\n\nexport function onCompassChange(callback: (data: unknown) => void): () => void {\n return on('push', (data) => { if (data.event === 'compassChange') callback(data.data); });\n}\n\nexport function startDeviceMotionListening(interval?: string) {\n return sendAsync('startDeviceMotionListening', { interval: interval || 'normal' }, { responseType: 'startDeviceMotionListening_response' });\n}\n\nexport function stopDeviceMotionListening() {\n return sendAsync('stopDeviceMotionListening', {}, { responseType: 'stopDeviceMotionListening_response' });\n}\n\nexport function onDeviceMotionChange(callback: (data: unknown) => void): () => void {\n return on('push', (data) => { if (data.event === 'deviceMotionChange') callback(data.data); });\n}\n\n// ========== Bluetooth ==========\n\nexport function openBluetoothAdapter() { return sendAsync('openBluetoothAdapter', {}, { responseType: 'openBluetoothAdapter_response' }); }\nexport function closeBluetoothAdapter() { return sendAsync('closeBluetoothAdapter', {}, { responseType: 'closeBluetoothAdapter_response' }); }\nexport function getBluetoothAdapterState() { return sendAsync('getBluetoothAdapterState', {}, { responseType: 'getBluetoothAdapterState_response' }); }\nexport function startBluetoothDevicesDiscovery(services?: string[]) { return sendAsync('startBluetoothDevicesDiscovery', { services: services || [] }, { responseType: 'startBluetoothDevicesDiscovery_response' }); }\nexport function stopBluetoothDevicesDiscovery() { return sendAsync('stopBluetoothDevicesDiscovery', {}, { responseType: 'stopBluetoothDevicesDiscovery_response' }); }\nexport function getBluetoothDevices() { return sendAsync('getBluetoothDevices', {}, { responseType: 'getBluetoothDevices_response' }); }\nexport function getConnectedBluetoothDevices(services?: string[]) { return sendAsync('getConnectedBluetoothDevices', { services: services || [] }, { responseType: 'getConnectedBluetoothDevices_response' }); }\nexport function connectBLEDevice(deviceId: string) { return sendAsync('connectBLEDevice', { deviceId }, { responseType: 'connectBLEDevice_response' }); }\nexport function disconnectBLEDevice(deviceId: string) { return sendAsync('disconnectBLEDevice', { deviceId }, { responseType: 'disconnectBLEDevice_response' }); }\nexport function getBLEDeviceServices(deviceId: string) { return sendAsync('getBLEDeviceServices', { deviceId }, { responseType: 'getBLEDeviceServices_response' }); }\nexport function getBLEDeviceCharacteristics(deviceId: string, serviceId: string) { return sendAsync('getBLEDeviceCharacteristics', { deviceId, serviceId }, { responseType: 'getBLEDeviceCharacteristics_response' }); }\n\n// ========== WiFi ==========\n\nexport function startWifi() { return sendAsync('startWifi', {}, { responseType: 'startWifi_response' }); }\nexport function stopWifi() { return sendAsync('stopWifi', {}, { responseType: 'stopWifi_response' }); }\nexport function getConnectedWifi() { return sendAsync('getConnectedWifi', {}, { responseType: 'getConnectedWifi_response' }); }\nexport function connectWifi(params: Record<string, unknown>) { return sendAsync('connectWifi', params || {}, { responseType: 'connectWifi_response' }); }\n\n// ========== Bio Auth ==========\n\nexport function checkBioAuthMode() { return sendAsync('checkBioAuthMode', {}, { responseType: 'checkBioAuthMode_response' }); }\nexport function startBioAuth(authType?: string) { return sendAsync('startBioAuth', { type: authType || 'fingerPrint' }, { responseType: 'startBioAuth_response' }); }\n\n// ========== Navigation & Misc ==========\n\nexport function navigateTo(url: string) { return sendAsync('navigateTo', { url }, { responseType: 'navigateTo_response' }); }\nexport function navigateBack(delta?: number) { return sendAsync('navigateBack', { delta: delta || 1 }, { responseType: 'navigateBack_response' }); }\nexport function navigateToMiniProgram(appId: string, path?: string, extraData?: Record<string, unknown>) {\n return sendAsync('navigateToMiniProgram', { appId, path: path || '', extraData: extraData || {} }, { responseType: 'navigateToMiniProgram_response' });\n}\nexport function getScreenBrightness() { return sendAsync('getScreenBrightness', {}, { responseType: 'getScreenBrightness_response' }); }\nexport function setScreenBrightness(brightness: number) { return sendAsync('setScreenBrightness', { brightness }, { responseType: 'setScreenBrightness_response' }); }\nexport function setKeepScreenOn(keepScreenOn: boolean) { return sendAsync('setKeepScreenOn', { keepScreenOn: keepScreenOn !== false }, { responseType: 'setKeepScreenOn_response' }); }\nexport function addPhoneCalendar(params: Record<string, unknown>) { return sendAsync('addPhoneCalendar', params || {}, { responseType: 'addPhoneCalendar_response' }); }\nexport function getAddress() { return sendAsync('getAddress', {}, { responseType: 'getAddress_response' }); }\nexport function choosePhoneContact() { return sendAsync('choosePhoneContact', {}, { responseType: 'choosePhoneContact_response' }); }\nexport function chooseAlipayContact(count?: number) { return sendAsync('chooseAlipayContact', { count: count || 1 }, { responseType: 'chooseAlipayContact_response' }); }\nexport function getRunData(params?: Record<string, unknown>) { return sendAsync('getRunData', params || {}, { responseType: 'getRunData_response' }); }\nexport function getOpenUserInfo() { return sendAsync('getOpenUserInfo', {}, { responseType: 'getOpenUserInfo_response' }); }\nexport function getPhoneNumber() { return sendAsync('getPhoneNumber', {}, { responseType: 'getPhoneNumber_response' }); }\nexport function getBatteryInfo() { return sendAsync('getBatteryInfo', {}, { responseType: 'getBatteryInfo_response' }); }\nexport function startPullDownRefresh() { return sendAsync('startPullDownRefresh', {}, { responseType: 'startPullDownRefresh_response' }); }\nexport function stopPullDownRefresh() { return sendAsync('stopPullDownRefresh', {}, { responseType: 'stopPullDownRefresh_response' }); }\n"],"names":["isReady","messageHandlers","logListeners","LogLevel","INFO","WARN","ERROR","SUCCESS","SEND","RECV","logs","addLog","level","msg","data","log","time","Date","toLocaleTimeString","unshift","length","slice","forEach","fn","_a","addLogListener","push","splice","indexOf","getLogs","clearLogs","isInMiniprogram","window","my","postMessage","init","Promise","resolve","script","document","createElement","src","onload","onerror","head","appendChild","then","onMessage","e","JSON","stringify","type","handlers","h","Error","message","String","handleMessage","send","params","Object","assign","sendAsync","opts","timeout","responseType","replace","reject","timer","setTimeout","removeHandler","handler","clearTimeout","status","errorMessage","on","filter","once","remove","requestAuthCode","scopes","requestLocation","locationType","requestVibrate","vibrateType","setNavbar","setPageTitle","title","content","reloadWebView","url","showToast","toastType","duration","showLoading","hideLoading","alert","buttonText","confirm","confirmButtonText","cancelButtonText","getSystemInfo","getNetworkType","getServerTime","setStorage","key","getStorage","removeStorage","setClipboard","text","getClipboard","scan","scanType","makePhoneCall","number","chooseImage","count","sourceType","previewImage","urls","current","saveImage","openLocation","chooseLocation","datePicker","format","currentDate","showActionSheet","items","httpRequest","tradePay","tradeNO","startAccelerometer","interval","stopAccelerometer","onAccelerometerChange","callback","event","startGyroscope","stopGyroscope","onGyroscopeChange","startCompass","stopCompass","onCompassChange","startDeviceMotionListening","stopDeviceMotionListening","onDeviceMotionChange","openBluetoothAdapter","closeBluetoothAdapter","getBluetoothAdapterState","startBluetoothDevicesDiscovery","services","stopBluetoothDevicesDiscovery","getBluetoothDevices","getConnectedBluetoothDevices","connectBLEDevice","deviceId","disconnectBLEDevice","getBLEDeviceServices","getBLEDeviceCharacteristics","serviceId","startWifi","stopWifi","getConnectedWifi","connectWifi","checkBioAuthMode","startBioAuth","authType","navigateTo","navigateBack","delta","navigateToMiniProgram","appId","path","extraData","getScreenBrightness","setScreenBrightness","brightness","setKeepScreenOn","keepScreenOn","addPhoneCalendar","getAddress","choosePhoneContact","chooseAlipayContact","getRunData","getOpenUserInfo","getPhoneNumber","getBatteryInfo","startPullDownRefresh","stopPullDownRefresh"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).AlipayBridge={})}(this,function(e){"use strict";let n=!1;const t={},o=[],s={INFO:"info",WARN:"warn",ERROR:"error",SUCCESS:"success",SEND:"send",RECV:"recv"};let r=[];function i(e,n,t=null){const s={time:(new Date).toLocaleTimeString(),level:e,msg:n,data:t};r.unshift(s),r.length>100&&(r=r.slice(0,100)),o.forEach(e=>{try{e(s,r)}catch(e){}})}function p(){return!(!window.my||!window.my.postMessage)}function c(e,n={}){const t=Object.assign({type:e},n);if(i(s.SEND,"[H5→Mini] "+JSON.stringify(t)),p())try{window.my.postMessage(t)}catch(e){i(s.ERROR,"postMessage failed: "+(e instanceof Error?e.message:String(e)))}else i(s.WARN,"(Not in miniprogram, message not sent)")}function a(e,n={},t={}){const o=t.timeout||3e4,s=t.responseType||e.replace(/^request_/,"")+"_response";return new Promise((t,r)=>{const i=setTimeout(()=>{f(s,p),r(new Error("Request timeout: "+e))},o);function p(e){clearTimeout(i),f(s,p),"success"===e.status?t(e):r(new Error(e.errorMessage||"Request failed"))}u(s,p),c(e,n)})}function u(e,n){return t[e]||(t[e]=[]),t[e].push(n),()=>f(e,n)}function f(e,n){t[e]&&(t[e]=t[e].filter(e=>e!==n))}e.LogLevel=s,e.addLog=i,e.addLogListener=function(e){return o.push(e),()=>{o.splice(o.indexOf(e),1)}},e.addPhoneCalendar=function(e){return a("addPhoneCalendar",e||{},{responseType:"addPhoneCalendar_response"})},e.alert=function(e,n,t){return a("alert",{title:e||"",content:n||"",buttonText:t||"确定"},{responseType:"alert_response"})},e.checkBioAuthMode=function(){return a("checkBioAuthMode",{},{responseType:"checkBioAuthMode_response"})},e.chooseAlipayContact=function(e){return a("chooseAlipayContact",{count:e||1},{responseType:"chooseAlipayContact_response"})},e.chooseImage=function(e,n){return a("chooseImage",{count:e||1,sourceType:n||["camera","album"]},{responseType:"chooseImage_response"})},e.chooseLocation=function(){return a("chooseLocation",{},{responseType:"chooseLocation_response"})},e.choosePhoneContact=function(){return a("choosePhoneContact",{},{responseType:"choosePhoneContact_response"})},e.clearLogs=function(){r=[]},e.closeBluetoothAdapter=function(){return a("closeBluetoothAdapter",{},{responseType:"closeBluetoothAdapter_response"})},e.confirm=function(e,n,t,o){return a("confirm",{title:e||"",content:n||"",confirmButtonText:t||"确定",cancelButtonText:o||"取消"},{responseType:"confirm_response"})},e.connectBLEDevice=function(e){return a("connectBLEDevice",{deviceId:e},{responseType:"connectBLEDevice_response"})},e.connectWifi=function(e){return a("connectWifi",e||{},{responseType:"connectWifi_response"})},e.datePicker=function(e,n){return a("datePicker",{format:e||"yyyy-MM-dd",currentDate:n||""},{responseType:"datePicker_response"})},e.disconnectBLEDevice=function(e){return a("disconnectBLEDevice",{deviceId:e},{responseType:"disconnectBLEDevice_response"})},e.getAddress=function(){return a("getAddress",{},{responseType:"getAddress_response"})},e.getBLEDeviceCharacteristics=function(e,n){return a("getBLEDeviceCharacteristics",{deviceId:e,serviceId:n},{responseType:"getBLEDeviceCharacteristics_response"})},e.getBLEDeviceServices=function(e){return a("getBLEDeviceServices",{deviceId:e},{responseType:"getBLEDeviceServices_response"})},e.getBatteryInfo=function(){return a("getBatteryInfo",{},{responseType:"getBatteryInfo_response"})},e.getBluetoothAdapterState=function(){return a("getBluetoothAdapterState",{},{responseType:"getBluetoothAdapterState_response"})},e.getBluetoothDevices=function(){return a("getBluetoothDevices",{},{responseType:"getBluetoothDevices_response"})},e.getClipboard=function(){return a("getClipboard",{},{responseType:"getClipboard_response"})},e.getConnectedBluetoothDevices=function(e){return a("getConnectedBluetoothDevices",{services:e||[]},{responseType:"getConnectedBluetoothDevices_response"})},e.getConnectedWifi=function(){return a("getConnectedWifi",{},{responseType:"getConnectedWifi_response"})},e.getLogs=function(){return[...r]},e.getNetworkType=function(){return a("getNetworkType",{},{responseType:"getNetworkType_response"})},e.getOpenUserInfo=function(){return a("getOpenUserInfo",{},{responseType:"getOpenUserInfo_response"})},e.getPhoneNumber=function(){return a("getPhoneNumber",{},{responseType:"getPhoneNumber_response"})},e.getRunData=function(e){return a("getRunData",e||{},{responseType:"getRunData_response"})},e.getScreenBrightness=function(){return a("getScreenBrightness",{},{responseType:"getScreenBrightness_response"})},e.getServerTime=function(){return a("getServerTime",{},{responseType:"getServerTime_response"})},e.getStorage=function(e){return a("getStorage",{key:e},{responseType:"getStorage_response"})},e.getSystemInfo=function(){return a("getSystemInfo",{},{responseType:"getSystemInfo_response"})},e.hideLoading=function(){return a("hideLoading",{},{responseType:"hideLoading_response"})},e.httpRequest=function(e){return a("httpRequest",e||{},{responseType:"httpRequest_response"})},e.init=function(){return n?Promise.resolve():new Promise(e=>{var n;if(null===(n=window.my)||void 0===n?void 0:n.postMessage)return void e();const t=document.createElement("script");t.src="https://appx/web-view.min.js",t.onload=()=>{i(s.INFO,"web-view.min.js loaded"),e()},t.onerror=()=>{i(s.WARN,"Failed to load web-view.min.js (not in miniprogram)"),e()},document.head.appendChild(t)}).then(()=>{p()?(window.my.onMessage=e=>{i(s.RECV,"[Mini→H5] "+JSON.stringify(e)),function(e){if(!e||!e.type)return;const n=t[e.type];n&&n.forEach(n=>{try{n(e)}catch(e){i(s.ERROR,e instanceof Error?e.message:String(e))}})}(e)},n=!0,i(s.SUCCESS,"SDK initialized")):i(s.WARN,"Not in miniprogram environment")})},e.isInMiniprogram=p,e.makePhoneCall=function(e){return a("makePhoneCall",{number:e},{responseType:"makePhoneCall_response"})},e.navigateBack=function(e){return a("navigateBack",{delta:e||1},{responseType:"navigateBack_response"})},e.navigateTo=function(e){return a("navigateTo",{url:e},{responseType:"navigateTo_response"})},e.navigateToMiniProgram=function(e,n,t){return a("navigateToMiniProgram",{appId:e,path:n||"",extraData:t||{}},{responseType:"navigateToMiniProgram_response"})},e.on=u,e.onAccelerometerChange=function(e){return u("push",n=>{"accelerometerChange"===n.event&&e(n.data)})},e.onCompassChange=function(e){return u("push",n=>{"compassChange"===n.event&&e(n.data)})},e.onDeviceMotionChange=function(e){return u("push",n=>{"deviceMotionChange"===n.event&&e(n.data)})},e.onGyroscopeChange=function(e){return u("push",n=>{"gyroscopeChange"===n.event&&e(n.data)})},e.once=function(e,n){const t=u(e,e=>{t(),n(e)});return t},e.openBluetoothAdapter=function(){return a("openBluetoothAdapter",{},{responseType:"openBluetoothAdapter_response"})},e.openLocation=function(e){return a("openLocation",e||{},{responseType:"openLocation_response"})},e.previewImage=function(e,n){return a("previewImage",{urls:e||[],current:n||0},{responseType:"previewImage_response"})},e.reloadWebView=function(e){return a("reload_webview",e?{url:e}:{},{responseType:"reload_response"})},e.removeStorage=function(e){return a("removeStorage",{key:e},{responseType:"removeStorage_response"})},e.requestAuthCode=function(e="auth_base"){return a("request_authcode",{scopes:e},{responseType:"authcode_response"})},e.requestLocation=function(e=0){return a("request_location",{locationType:e},{responseType:"location_response"})},e.requestVibrate=function(e="light"){return a("request_vibrate",{vibrateType:e},{responseType:"vibrate_response"})},e.saveImage=function(e){return a("saveImage",{url:e},{responseType:"saveImage_response"})},e.scan=function(e){return a("scan",{scanType:e||"qr"},{responseType:"scan_response"})},e.send=c,e.sendAsync=a,e.setClipboard=function(e){return a("setClipboard",{text:e},{responseType:"setClipboard_response"})},e.setKeepScreenOn=function(e){return a("setKeepScreenOn",{keepScreenOn:!1!==e},{responseType:"setKeepScreenOn_response"})},e.setNavbar=function(e={}){return a("set_navbar",e,{responseType:"navbar_response"})},e.setPageTitle=function(e){return a("page_title",{content:e},{responseType:"title_response"})},e.setScreenBrightness=function(e){return a("setScreenBrightness",{brightness:e},{responseType:"setScreenBrightness_response"})},e.setStorage=function(e,n){return a("setStorage",{key:e,data:n},{responseType:"setStorage_response"})},e.showActionSheet=function(e,n,t){return a("showActionSheet",{title:e||"",items:n||[],cancelButtonText:t||"取消"},{responseType:"showActionSheet_response"})},e.showLoading=function(e){return a("showLoading",{content:e||"加载中..."},{responseType:"showLoading_response"})},e.showToast=function(e,n,t){return a("showToast",{content:e||"",toastType:n||"none",duration:t||2e3},{responseType:"showToast_response"})},e.startAccelerometer=function(e){return a("startAccelerometer",{interval:e||"normal"},{responseType:"startAccelerometer_response"})},e.startBioAuth=function(e){return a("startBioAuth",{type:e||"fingerPrint"},{responseType:"startBioAuth_response"})},e.startBluetoothDevicesDiscovery=function(e){return a("startBluetoothDevicesDiscovery",{services:e||[]},{responseType:"startBluetoothDevicesDiscovery_response"})},e.startCompass=function(e){return a("startCompass",{interval:e||"normal"},{responseType:"startCompass_response"})},e.startDeviceMotionListening=function(e){return a("startDeviceMotionListening",{interval:e||"normal"},{responseType:"startDeviceMotionListening_response"})},e.startGyroscope=function(e){return a("startGyroscope",{interval:e||"normal"},{responseType:"startGyroscope_response"})},e.startPullDownRefresh=function(){return a("startPullDownRefresh",{},{responseType:"startPullDownRefresh_response"})},e.startWifi=function(){return a("startWifi",{},{responseType:"startWifi_response"})},e.stopAccelerometer=function(){return a("stopAccelerometer",{},{responseType:"stopAccelerometer_response"})},e.stopBluetoothDevicesDiscovery=function(){return a("stopBluetoothDevicesDiscovery",{},{responseType:"stopBluetoothDevicesDiscovery_response"})},e.stopCompass=function(){return a("stopCompass",{},{responseType:"stopCompass_response"})},e.stopDeviceMotionListening=function(){return a("stopDeviceMotionListening",{},{responseType:"stopDeviceMotionListening_response"})},e.stopGyroscope=function(){return a("stopGyroscope",{},{responseType:"stopGyroscope_response"})},e.stopPullDownRefresh=function(){return a("stopPullDownRefresh",{},{responseType:"stopPullDownRefresh_response"})},e.stopWifi=function(){return a("stopWifi",{},{responseType:"stopWifi_response"})},e.tradePay=function(e){return a("tradePay",{tradeNO:e},{responseType:"tradePay_response"})}});
|
|
2
|
+
//# sourceMappingURL=index.umd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.umd.js","sources":["../../src/src/h5/index.ts"],"sourcesContent":["declare global {\n interface Window {\n my?: {\n postMessage: (data: Record<string, unknown>) => void;\n onMessage: ((e: Record<string, unknown>) => void) | null;\n };\n }\n}\n\nexport interface LogEntry {\n time: string;\n level: string;\n msg: string;\n data?: unknown;\n}\n\nexport type LogListener = (log: LogEntry, all: LogEntry[]) => void;\nexport type MessageHandler = (data: Record<string, unknown>) => void;\n\nexport interface SendAsyncOptions {\n timeout?: number;\n responseType?: string;\n}\n\n// ========== State ==========\nlet isReady = false;\nconst messageHandlers: Record<string, MessageHandler[]> = {};\nconst logListeners: LogListener[] = [];\n\n// ========== Logging ==========\nexport const LogLevel = {\n INFO: 'info',\n WARN: 'warn',\n ERROR: 'error',\n SUCCESS: 'success',\n SEND: 'send',\n RECV: 'recv',\n} as const;\n\nlet logs: LogEntry[] = [];\nconst MAX_LOGS = 100;\n\nexport function addLog(level: string, msg: string, data: unknown = null): void {\n const log: LogEntry = { time: new Date().toLocaleTimeString(), level, msg, data };\n logs.unshift(log);\n if (logs.length > MAX_LOGS) logs = logs.slice(0, MAX_LOGS);\n logListeners.forEach((fn) => {\n try { fn(log, logs); } catch { /* ignore */ }\n });\n}\n\nexport function addLogListener(fn: LogListener): () => void {\n logListeners.push(fn);\n return () => { logListeners.splice(logListeners.indexOf(fn), 1); };\n}\n\nexport function getLogs(): LogEntry[] { return [...logs]; }\nexport function clearLogs(): void { logs = []; }\n\n// ========== Environment Detection ==========\nexport function isInMiniprogram(): boolean {\n return !!(window.my && window.my.postMessage);\n}\n\n// ========== Dynamic Bridge Loading ==========\nconst BRIDGE_URL = 'https://appx/web-view.min.js';\n\nfunction loadBridgeScript(): Promise<void> {\n return new Promise((resolve) => {\n if (window.my?.postMessage) {\n resolve();\n return;\n }\n const script = document.createElement('script');\n script.src = BRIDGE_URL;\n script.onload = () => {\n addLog(LogLevel.INFO, 'web-view.min.js loaded');\n resolve();\n };\n script.onerror = () => {\n addLog(LogLevel.WARN, 'Failed to load web-view.min.js (not in miniprogram)');\n resolve();\n };\n document.head.appendChild(script);\n });\n}\n\n// ========== Init ==========\nexport function init(): Promise<void> {\n if (isReady) return Promise.resolve();\n\n return loadBridgeScript().then(() => {\n if (isInMiniprogram()) {\n window.my!.onMessage = (e: Record<string, unknown>) => {\n addLog(LogLevel.RECV, '[Mini→H5] ' + JSON.stringify(e));\n handleMessage(e);\n };\n isReady = true;\n addLog(LogLevel.SUCCESS, 'SDK initialized');\n } else {\n addLog(LogLevel.WARN, 'Not in miniprogram environment');\n }\n });\n}\n\n// ========== Send Messages ==========\nexport function send(type: string, params: Record<string, unknown> = {}): void {\n const data = { type, ...params };\n addLog(LogLevel.SEND, '[H5→Mini] ' + JSON.stringify(data));\n if (isInMiniprogram()) {\n try {\n window.my!.postMessage(data);\n } catch (e: unknown) {\n addLog(LogLevel.ERROR, 'postMessage failed: ' + (e instanceof Error ? e.message : String(e)));\n }\n } else {\n addLog(LogLevel.WARN, '(Not in miniprogram, message not sent)');\n }\n}\n\nexport function sendAsync(type: string, params: Record<string, unknown> = {}, opts: SendAsyncOptions = {}): Promise<Record<string, unknown>> {\n const timeout = opts.timeout || 30000;\n const responseType = opts.responseType || (type.replace(/^request_/, '') + '_response');\n\n return new Promise((resolve, reject) => {\n const timer = setTimeout(() => {\n removeHandler(responseType, handler);\n reject(new Error('Request timeout: ' + type));\n }, timeout);\n\n function handler(data: Record<string, unknown>) {\n clearTimeout(timer);\n removeHandler(responseType, handler);\n if (data.status === 'success') {\n resolve(data);\n } else {\n reject(new Error((data.errorMessage as string) || 'Request failed'));\n }\n }\n\n on(responseType, handler);\n send(type, params);\n });\n}\n\n// ========== Receive Messages ==========\nfunction handleMessage(data: Record<string, unknown>): void {\n if (!data || !data.type) return;\n const handlers = messageHandlers[data.type as string];\n if (handlers) {\n handlers.forEach((h) => {\n try { h(data); } catch (e: unknown) {\n addLog(LogLevel.ERROR, e instanceof Error ? e.message : String(e));\n }\n });\n }\n}\n\nexport function on(type: string, handler: MessageHandler): () => void {\n if (!messageHandlers[type]) messageHandlers[type] = [];\n messageHandlers[type].push(handler);\n return () => removeHandler(type, handler);\n}\n\nfunction removeHandler(type: string, handler: MessageHandler): void {\n if (!messageHandlers[type]) return;\n messageHandlers[type] = messageHandlers[type].filter((h) => h !== handler);\n}\n\nexport function once(type: string, handler: MessageHandler): () => void {\n const remove = on(type, (data) => { remove(); handler(data); });\n return remove;\n}\n\n// ========== Preset APIs ==========\n\nexport function requestAuthCode(scopes = 'auth_base') {\n return sendAsync('request_authcode', { scopes }, { responseType: 'authcode_response' });\n}\n\nexport function requestLocation(locationType = 0) {\n return sendAsync('request_location', { locationType }, { responseType: 'location_response' });\n}\n\nexport function requestVibrate(vibrateType = 'light') {\n return sendAsync('request_vibrate', { vibrateType }, { responseType: 'vibrate_response' });\n}\n\nexport function setNavbar(params: Record<string, unknown> = {}) {\n return sendAsync('set_navbar', params, { responseType: 'navbar_response' });\n}\n\nexport function setPageTitle(title: string) {\n return sendAsync('page_title', { content: title }, { responseType: 'title_response' });\n}\n\nexport function reloadWebView(url?: string) {\n return sendAsync('reload_webview', url ? { url } : {}, { responseType: 'reload_response' });\n}\n\n// ========== High-frequency APIs ==========\n\nexport function showToast(content?: string, toastType?: string, duration?: number) {\n return sendAsync('showToast', { content: content || '', toastType: toastType || 'none', duration: duration || 2000 }, { responseType: 'showToast_response' });\n}\n\nexport function showLoading(content?: string) {\n return sendAsync('showLoading', { content: content || '加载中...' }, { responseType: 'showLoading_response' });\n}\n\nexport function hideLoading() {\n return sendAsync('hideLoading', {}, { responseType: 'hideLoading_response' });\n}\n\nexport function alert(title?: string, content?: string, buttonText?: string) {\n return sendAsync('alert', { title: title || '', content: content || '', buttonText: buttonText || '确定' }, { responseType: 'alert_response' });\n}\n\nexport function confirm(title?: string, content?: string, confirmButtonText?: string, cancelButtonText?: string) {\n return sendAsync('confirm', {\n title: title || '', content: content || '',\n confirmButtonText: confirmButtonText || '确定', cancelButtonText: cancelButtonText || '取消',\n }, { responseType: 'confirm_response' });\n}\n\nexport function getSystemInfo() {\n return sendAsync('getSystemInfo', {}, { responseType: 'getSystemInfo_response' });\n}\n\nexport function getNetworkType() {\n return sendAsync('getNetworkType', {}, { responseType: 'getNetworkType_response' });\n}\n\nexport function getServerTime() {\n return sendAsync('getServerTime', {}, { responseType: 'getServerTime_response' });\n}\n\nexport function setStorage(key: string, data: unknown) {\n return sendAsync('setStorage', { key, data }, { responseType: 'setStorage_response' });\n}\n\nexport function getStorage(key: string) {\n return sendAsync('getStorage', { key }, { responseType: 'getStorage_response' });\n}\n\nexport function removeStorage(key: string) {\n return sendAsync('removeStorage', { key }, { responseType: 'removeStorage_response' });\n}\n\nexport function setClipboard(text: string) {\n return sendAsync('setClipboard', { text }, { responseType: 'setClipboard_response' });\n}\n\nexport function getClipboard() {\n return sendAsync('getClipboard', {}, { responseType: 'getClipboard_response' });\n}\n\nexport function scan(scanType?: string) {\n return sendAsync('scan', { scanType: scanType || 'qr' }, { responseType: 'scan_response' });\n}\n\nexport function makePhoneCall(number: string) {\n return sendAsync('makePhoneCall', { number }, { responseType: 'makePhoneCall_response' });\n}\n\n// ========== Enhanced APIs ==========\n\nexport function chooseImage(count?: number, sourceType?: string[]) {\n return sendAsync('chooseImage', { count: count || 1, sourceType: sourceType || ['camera', 'album'] }, { responseType: 'chooseImage_response' });\n}\n\nexport function previewImage(urls: string[], current?: number) {\n return sendAsync('previewImage', { urls: urls || [], current: current || 0 }, { responseType: 'previewImage_response' });\n}\n\nexport function saveImage(url: string) {\n return sendAsync('saveImage', { url }, { responseType: 'saveImage_response' });\n}\n\nexport function openLocation(params: Record<string, unknown>) {\n return sendAsync('openLocation', params || {}, { responseType: 'openLocation_response' });\n}\n\nexport function chooseLocation() {\n return sendAsync('chooseLocation', {}, { responseType: 'chooseLocation_response' });\n}\n\nexport function datePicker(format?: string, currentDate?: string) {\n return sendAsync('datePicker', { format: format || 'yyyy-MM-dd', currentDate: currentDate || '' }, { responseType: 'datePicker_response' });\n}\n\nexport function showActionSheet(title?: string, items?: string[], cancelButtonText?: string) {\n return sendAsync('showActionSheet', { title: title || '', items: items || [], cancelButtonText: cancelButtonText || '取消' }, { responseType: 'showActionSheet_response' });\n}\n\nexport function httpRequest(params: Record<string, unknown>) {\n return sendAsync('httpRequest', params || {}, { responseType: 'httpRequest_response' });\n}\n\nexport function tradePay(tradeNO: string) {\n return sendAsync('tradePay', { tradeNO }, { responseType: 'tradePay_response' });\n}\n\n// ========== Sensors ==========\n\nexport function startAccelerometer(interval?: string) {\n return sendAsync('startAccelerometer', { interval: interval || 'normal' }, { responseType: 'startAccelerometer_response' });\n}\n\nexport function stopAccelerometer() {\n return sendAsync('stopAccelerometer', {}, { responseType: 'stopAccelerometer_response' });\n}\n\nexport function onAccelerometerChange(callback: (data: unknown) => void): () => void {\n return on('push', (data) => { if (data.event === 'accelerometerChange') callback(data.data); });\n}\n\nexport function startGyroscope(interval?: string) {\n return sendAsync('startGyroscope', { interval: interval || 'normal' }, { responseType: 'startGyroscope_response' });\n}\n\nexport function stopGyroscope() {\n return sendAsync('stopGyroscope', {}, { responseType: 'stopGyroscope_response' });\n}\n\nexport function onGyroscopeChange(callback: (data: unknown) => void): () => void {\n return on('push', (data) => { if (data.event === 'gyroscopeChange') callback(data.data); });\n}\n\nexport function startCompass(interval?: string) {\n return sendAsync('startCompass', { interval: interval || 'normal' }, { responseType: 'startCompass_response' });\n}\n\nexport function stopCompass() {\n return sendAsync('stopCompass', {}, { responseType: 'stopCompass_response' });\n}\n\nexport function onCompassChange(callback: (data: unknown) => void): () => void {\n return on('push', (data) => { if (data.event === 'compassChange') callback(data.data); });\n}\n\nexport function startDeviceMotionListening(interval?: string) {\n return sendAsync('startDeviceMotionListening', { interval: interval || 'normal' }, { responseType: 'startDeviceMotionListening_response' });\n}\n\nexport function stopDeviceMotionListening() {\n return sendAsync('stopDeviceMotionListening', {}, { responseType: 'stopDeviceMotionListening_response' });\n}\n\nexport function onDeviceMotionChange(callback: (data: unknown) => void): () => void {\n return on('push', (data) => { if (data.event === 'deviceMotionChange') callback(data.data); });\n}\n\n// ========== Bluetooth ==========\n\nexport function openBluetoothAdapter() { return sendAsync('openBluetoothAdapter', {}, { responseType: 'openBluetoothAdapter_response' }); }\nexport function closeBluetoothAdapter() { return sendAsync('closeBluetoothAdapter', {}, { responseType: 'closeBluetoothAdapter_response' }); }\nexport function getBluetoothAdapterState() { return sendAsync('getBluetoothAdapterState', {}, { responseType: 'getBluetoothAdapterState_response' }); }\nexport function startBluetoothDevicesDiscovery(services?: string[]) { return sendAsync('startBluetoothDevicesDiscovery', { services: services || [] }, { responseType: 'startBluetoothDevicesDiscovery_response' }); }\nexport function stopBluetoothDevicesDiscovery() { return sendAsync('stopBluetoothDevicesDiscovery', {}, { responseType: 'stopBluetoothDevicesDiscovery_response' }); }\nexport function getBluetoothDevices() { return sendAsync('getBluetoothDevices', {}, { responseType: 'getBluetoothDevices_response' }); }\nexport function getConnectedBluetoothDevices(services?: string[]) { return sendAsync('getConnectedBluetoothDevices', { services: services || [] }, { responseType: 'getConnectedBluetoothDevices_response' }); }\nexport function connectBLEDevice(deviceId: string) { return sendAsync('connectBLEDevice', { deviceId }, { responseType: 'connectBLEDevice_response' }); }\nexport function disconnectBLEDevice(deviceId: string) { return sendAsync('disconnectBLEDevice', { deviceId }, { responseType: 'disconnectBLEDevice_response' }); }\nexport function getBLEDeviceServices(deviceId: string) { return sendAsync('getBLEDeviceServices', { deviceId }, { responseType: 'getBLEDeviceServices_response' }); }\nexport function getBLEDeviceCharacteristics(deviceId: string, serviceId: string) { return sendAsync('getBLEDeviceCharacteristics', { deviceId, serviceId }, { responseType: 'getBLEDeviceCharacteristics_response' }); }\n\n// ========== WiFi ==========\n\nexport function startWifi() { return sendAsync('startWifi', {}, { responseType: 'startWifi_response' }); }\nexport function stopWifi() { return sendAsync('stopWifi', {}, { responseType: 'stopWifi_response' }); }\nexport function getConnectedWifi() { return sendAsync('getConnectedWifi', {}, { responseType: 'getConnectedWifi_response' }); }\nexport function connectWifi(params: Record<string, unknown>) { return sendAsync('connectWifi', params || {}, { responseType: 'connectWifi_response' }); }\n\n// ========== Bio Auth ==========\n\nexport function checkBioAuthMode() { return sendAsync('checkBioAuthMode', {}, { responseType: 'checkBioAuthMode_response' }); }\nexport function startBioAuth(authType?: string) { return sendAsync('startBioAuth', { type: authType || 'fingerPrint' }, { responseType: 'startBioAuth_response' }); }\n\n// ========== Navigation & Misc ==========\n\nexport function navigateTo(url: string) { return sendAsync('navigateTo', { url }, { responseType: 'navigateTo_response' }); }\nexport function navigateBack(delta?: number) { return sendAsync('navigateBack', { delta: delta || 1 }, { responseType: 'navigateBack_response' }); }\nexport function navigateToMiniProgram(appId: string, path?: string, extraData?: Record<string, unknown>) {\n return sendAsync('navigateToMiniProgram', { appId, path: path || '', extraData: extraData || {} }, { responseType: 'navigateToMiniProgram_response' });\n}\nexport function getScreenBrightness() { return sendAsync('getScreenBrightness', {}, { responseType: 'getScreenBrightness_response' }); }\nexport function setScreenBrightness(brightness: number) { return sendAsync('setScreenBrightness', { brightness }, { responseType: 'setScreenBrightness_response' }); }\nexport function setKeepScreenOn(keepScreenOn: boolean) { return sendAsync('setKeepScreenOn', { keepScreenOn: keepScreenOn !== false }, { responseType: 'setKeepScreenOn_response' }); }\nexport function addPhoneCalendar(params: Record<string, unknown>) { return sendAsync('addPhoneCalendar', params || {}, { responseType: 'addPhoneCalendar_response' }); }\nexport function getAddress() { return sendAsync('getAddress', {}, { responseType: 'getAddress_response' }); }\nexport function choosePhoneContact() { return sendAsync('choosePhoneContact', {}, { responseType: 'choosePhoneContact_response' }); }\nexport function chooseAlipayContact(count?: number) { return sendAsync('chooseAlipayContact', { count: count || 1 }, { responseType: 'chooseAlipayContact_response' }); }\nexport function getRunData(params?: Record<string, unknown>) { return sendAsync('getRunData', params || {}, { responseType: 'getRunData_response' }); }\nexport function getOpenUserInfo() { return sendAsync('getOpenUserInfo', {}, { responseType: 'getOpenUserInfo_response' }); }\nexport function getPhoneNumber() { return sendAsync('getPhoneNumber', {}, { responseType: 'getPhoneNumber_response' }); }\nexport function getBatteryInfo() { return sendAsync('getBatteryInfo', {}, { responseType: 'getBatteryInfo_response' }); }\nexport function startPullDownRefresh() { return sendAsync('startPullDownRefresh', {}, { responseType: 'startPullDownRefresh_response' }); }\nexport function stopPullDownRefresh() { return sendAsync('stopPullDownRefresh', {}, { responseType: 'stopPullDownRefresh_response' }); }\n"],"names":["isReady","messageHandlers","logListeners","LogLevel","INFO","WARN","ERROR","SUCCESS","SEND","RECV","logs","addLog","level","msg","data","log","time","Date","toLocaleTimeString","unshift","length","slice","forEach","fn","_a","isInMiniprogram","window","my","postMessage","send","type","params","Object","assign","JSON","stringify","e","Error","message","String","sendAsync","opts","timeout","responseType","replace","Promise","resolve","reject","timer","setTimeout","removeHandler","handler","clearTimeout","status","errorMessage","on","push","filter","h","splice","indexOf","title","content","buttonText","count","sourceType","confirmButtonText","cancelButtonText","deviceId","format","currentDate","serviceId","services","key","script","document","createElement","src","onload","onerror","head","appendChild","then","onMessage","handlers","handleMessage","number","delta","url","appId","path","extraData","callback","event","remove","urls","current","scopes","locationType","vibrateType","scanType","text","keepScreenOn","brightness","items","toastType","duration","interval","authType","tradeNO"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";const e={request_authcode:{responseType:"authcode_response",myApi:"getAuthCode",handler:"auto",paramsTransform:e=>({scopes:e.scopes||"auth_base"}),resultTransform:e=>({authCode:e.authCode})},request_location:{responseType:"location_response",myApi:"getLocation",handler:"auto",paramsTransform:e=>({type:e.locationType||0}),resultTransform:e=>({latitude:e.latitude,longitude:e.longitude,accuracy:e.accuracy,horizontalAccuracy:e.horizontalAccuracy,city:e.city||"",cityCode:e.cityCode||"",district:e.district||"",province:e.province||"",street:e.street||"",streetNumber:e.streetNumber||""})},request_vibrate:{responseType:"vibrate_response",myApi:"vibrate",handler:"auto",paramsTransform:e=>({type:e.vibrateType||"light"}),resultTransform:(e,o)=>({vibrateType:o.vibrateType||"light",message:"震动执行成功"})},set_navbar:{responseType:"navbar_response",myApi:"setNavigationBar",handler:"auto",paramsTransform:e=>{const o={};return void 0!==e.title&&(o.title=e.title),e.backgroundColor&&(o.backgroundColor=e.backgroundColor),e.borderBottomColor&&(o.borderBottomColor=e.borderBottomColor),e.image&&(o.image=e.image),o},resultTransform:(e,o)=>({message:"导航栏设置成功",title:o.title||""})},page_title:{responseType:"title_response",handler:e=>new Promise(o=>{my.setNavigationBar({title:e.content||""}),o({message:"标题设置成功",title:e.content})})},reload_webview:{responseType:"reload_response",handler:(e,o)=>new Promise(r=>{const s=(e.url||o.data.webUrl||o.data.webViewUrl||"").replace(/[?&]t=\d+/,"").replace(/[?&]$/,""),t=s.indexOf("?")>-1?"&":"?",n=s+t+"t="+Date.now(),a={};void 0!==o.data.webUrl&&(a.webUrl=n),void 0!==o.data.webViewUrl&&(a.webViewUrl=n),a.webUrl||a.webViewUrl||(a.webUrl=n),o.setData(a),r({message:"WebView 已重新加载",url:n})})},getSystemInfo:{responseType:"getSystemInfo_response",handler:"auto"},getNetworkType:{responseType:"getNetworkType_response",handler:"auto"},scan:{responseType:"scan_response",handler:"auto",paramsTransform:e=>({type:e.scanType||"qr"})},showToast:{responseType:"showToast_response",handler:"auto",paramsTransform:e=>({content:e.content||e.title||"",type:e.toastType||"none",duration:e.duration||2e3})},alert:{responseType:"alert_response",handler:"auto",paramsTransform:e=>({title:e.title||"",content:e.content||"",buttonText:e.buttonText||"确定"})},confirm:{responseType:"confirm_response",handler:"auto",paramsTransform:e=>({title:e.title||"",content:e.content||"",confirmButtonText:e.confirmButtonText||"确定",cancelButtonText:e.cancelButtonText||"取消"})},showLoading:{responseType:"showLoading_response",handler:"auto",paramsTransform:e=>({content:e.content||"加载中...",delay:e.delay||0})},hideLoading:{responseType:"hideLoading_response",handler:"auto"},getStorage:{responseType:"getStorage_response",handler:"auto",paramsTransform:e=>({key:e.key||""})},setStorage:{responseType:"setStorage_response",handler:"auto",paramsTransform:e=>({key:e.key||"",data:e.data})},removeStorage:{responseType:"removeStorage_response",handler:"auto",paramsTransform:e=>({key:e.key||""})},getClipboard:{responseType:"getClipboard_response",handler:"auto"},setClipboard:{responseType:"setClipboard_response",handler:"auto",paramsTransform:e=>({text:e.text||""})},chooseImage:{responseType:"chooseImage_response",handler:"auto",paramsTransform:e=>({count:e.count||1,sourceType:e.sourceType||["camera","album"]})},previewImage:{responseType:"previewImage_response",handler:"auto",paramsTransform:e=>({urls:e.urls||[],current:e.current||0})},saveImage:{responseType:"saveImage_response",handler:"auto",paramsTransform:e=>({url:e.url||""})},openLocation:{responseType:"openLocation_response",handler:"auto",paramsTransform:e=>({longitude:e.longitude||"",latitude:e.latitude||"",name:e.name||"",address:e.address||"",scale:e.scale||15})},chooseLocation:{responseType:"chooseLocation_response",handler:"auto"},makePhoneCall:{responseType:"makePhoneCall_response",handler:"auto",paramsTransform:e=>({number:e.number||""})},getScreenBrightness:{responseType:"getScreenBrightness_response",handler:"auto"},setScreenBrightness:{responseType:"setScreenBrightness_response",handler:"auto",paramsTransform:e=>({brightness:e.brightness||1})},setKeepScreenOn:{responseType:"setKeepScreenOn_response",handler:"auto",paramsTransform:e=>({keepScreenOn:!1!==e.keepScreenOn})},choosePhoneContact:{responseType:"choosePhoneContact_response",handler:"auto"},chooseAlipayContact:{responseType:"chooseAlipayContact_response",handler:"auto",paramsTransform:e=>({count:e.count||1})},datePicker:{responseType:"datePicker_response",handler:"auto",paramsTransform:e=>({format:e.format||"yyyy-MM-dd",currentDate:e.currentDate||""})},showActionSheet:{responseType:"showActionSheet_response",handler:"auto",paramsTransform:e=>({title:e.title||"",items:e.items||[],cancelButtonText:e.cancelButtonText||"取消"})},openBluetoothAdapter:{responseType:"openBluetoothAdapter_response",handler:"auto"},closeBluetoothAdapter:{responseType:"closeBluetoothAdapter_response",handler:"auto"},getBluetoothAdapterState:{responseType:"getBluetoothAdapterState_response",handler:"auto"},startBluetoothDevicesDiscovery:{responseType:"startBluetoothDevicesDiscovery_response",handler:"auto",paramsTransform:e=>({services:e.services||[]})},stopBluetoothDevicesDiscovery:{responseType:"stopBluetoothDevicesDiscovery_response",handler:"auto"},getBluetoothDevices:{responseType:"getBluetoothDevices_response",handler:"auto"},getConnectedBluetoothDevices:{responseType:"getConnectedBluetoothDevices_response",handler:"auto",paramsTransform:e=>({services:e.services||[]})},connectBLEDevice:{responseType:"connectBLEDevice_response",handler:"auto",paramsTransform:e=>({deviceId:e.deviceId||""})},disconnectBLEDevice:{responseType:"disconnectBLEDevice_response",handler:"auto",paramsTransform:e=>({deviceId:e.deviceId||""})},getBLEDeviceServices:{responseType:"getBLEDeviceServices_response",handler:"auto",paramsTransform:e=>({deviceId:e.deviceId||""})},getBLEDeviceCharacteristics:{responseType:"getBLEDeviceCharacteristics_response",handler:"auto",paramsTransform:e=>({deviceId:e.deviceId||"",serviceId:e.serviceId||""})},navigateTo:{responseType:"navigateTo_response",handler:"auto",paramsTransform:e=>({url:e.url||""})},navigateBack:{responseType:"navigateBack_response",handler:"auto",paramsTransform:e=>({delta:e.delta||1})},navigateToMiniProgram:{responseType:"navigateToMiniProgram_response",handler:"auto",paramsTransform:e=>({appId:e.appId||"",path:e.path||"",extraData:e.extraData||{}})},tradePay:{responseType:"tradePay_response",handler:"auto",paramsTransform:e=>({tradeNO:e.tradeNO||e.orderStr||""})},getServerTime:{responseType:"getServerTime_response",handler:"auto"},httpRequest:{responseType:"httpRequest_response",myApi:"request",handler:"auto",paramsTransform:e=>({url:e.url||"",method:e.method||"GET",headers:e.headers||{},data:e.data||e.body||"",dataType:e.dataType||"json",timeout:e.timeout||3e4})},startPullDownRefresh:{responseType:"startPullDownRefresh_response",handler:"auto"},stopPullDownRefresh:{responseType:"stopPullDownRefresh_response",handler:"auto"},getAddress:{responseType:"getAddress_response",handler:"auto"},getOpenUserInfo:{responseType:"getOpenUserInfo_response",handler:"auto"},getPhoneNumber:{responseType:"getPhoneNumber_response",handler:"auto"},startBioAuth:{responseType:"startBioAuth_response",handler:"auto",paramsTransform:e=>({type:e.type||"fingerPrint"})},checkBioAuthMode:{responseType:"checkBioAuthMode_response",handler:"auto"},getBatteryInfo:{responseType:"getBatteryInfo_response",handler:"auto"},addPhoneCalendar:{responseType:"addPhoneCalendar_response",handler:"auto",paramsTransform:e=>({title:e.title||"",startDate:e.startDate||"",endDate:e.endDate||"",location:e.location||"",notes:e.notes||"",alarm:void 0===e.alarm||e.alarm})},getRunData:{responseType:"getRunData_response",handler:"auto",paramsTransform:e=>({countDate:e.countDate||""})},startWifi:{responseType:"startWifi_response",handler:"auto"},stopWifi:{responseType:"stopWifi_response",handler:"auto"},getConnectedWifi:{responseType:"getConnectedWifi_response",handler:"auto"},connectWifi:{responseType:"connectWifi_response",handler:"auto",paramsTransform:e=>({SSID:e.SSID||"",BSSID:e.BSSID||"",password:e.password||""})},startAccelerometer:{responseType:"startAccelerometer_response",handler:(e,o)=>new Promise(r=>{const s=e.interval||"normal";"function"==typeof my.onAccelerometerChange&&my.onAccelerometerChange(e=>{o.__bridgeProxy&&o.__bridgeProxy.pushToH5&&o.__bridgeProxy.pushToH5("accelerometerChange",e)}),r({message:"加速度计已启动",interval:s})})},stopAccelerometer:{responseType:"stopAccelerometer_response",handler:(e,o)=>new Promise(e=>{"function"==typeof my.offAccelerometerChange&&my.offAccelerometerChange(),e({message:"加速度计已停止"})})},startGyroscope:{responseType:"startGyroscope_response",handler:(e,o)=>new Promise(r=>{const s=e.interval||"normal";"function"==typeof my.onGyroscopeChange&&my.onGyroscopeChange(e=>{o.__bridgeProxy&&o.__bridgeProxy.pushToH5&&o.__bridgeProxy.pushToH5("gyroscopeChange",e)}),r({message:"陀螺仪已启动",interval:s})})},stopGyroscope:{responseType:"stopGyroscope_response",handler:(e,o)=>new Promise(e=>{"function"==typeof my.offGyroscopeChange&&my.offGyroscopeChange(),e({message:"陀螺仪已停止"})})},startCompass:{responseType:"startCompass_response",handler:(e,o)=>new Promise(e=>{"function"==typeof my.onCompassChange&&my.onCompassChange(e=>{o.__bridgeProxy&&o.__bridgeProxy.pushToH5&&o.__bridgeProxy.pushToH5("compassChange",e)}),e({message:"罗盘已启动"})})},stopCompass:{responseType:"stopCompass_response",handler:(e,o)=>new Promise(e=>{"function"==typeof my.offCompassChange&&my.offCompassChange(),e({message:"罗盘已停止"})})},startDeviceMotionListening:{responseType:"startDeviceMotionListening_response",handler:(e,o)=>new Promise(e=>{"function"==typeof my.onDeviceMotionChange&&my.onDeviceMotionChange(e=>{o.__bridgeProxy&&o.__bridgeProxy.pushToH5&&o.__bridgeProxy.pushToH5("deviceMotionChange",e)}),e({message:"设备运动监听已启动"})})},stopDeviceMotionListening:{responseType:"stopDeviceMotionListening_response",handler:(e,o)=>new Promise(e=>{"function"==typeof my.offDeviceMotionChange&&my.offDeviceMotionChange(),e({message:"设备运动监听已停止"})})}};exports.DEFAULT_REGISTRY=e,exports.createBridgeProxy=function(o,r){const s=r||{},t=s.extraRegistry||{},n=!1!==s.allowDynamicProxy,a=s.onMessage||null,p={};for(const o in e)p[o]=e[o];for(const e in t)p[e]=t[e];let i=null;function c(e){const o=function(){try{i=my.createWebViewContext("web-view")}catch(e){console.error("[SDK] Failed to create WebView context:",e)}return i}();o?(o.postMessage(e),console.log("[SDK] → H5:",JSON.stringify(e))):console.error("[SDK] WebView context unavailable")}function l(e,o){const r={type:e,status:"success",timestamp:Date.now()};if(o)for(const e in o)r[e]=o[e];c(r)}function d(e,o,r){c({type:e,status:"fail",errorMessage:o,errorCode:r||"",timestamp:Date.now()})}function m(e,o,r,s,t){"function"==typeof my[e]?my[e](Object.assign(Object.assign({},o),{success:o=>{console.log("[SDK] my."+e+" success:",JSON.stringify(o));const n=s?s(o,t||{}):o;l(r,n)},fail:o=>{console.error("[SDK] my."+e+" fail:",JSON.stringify(o)),d(r,o.errorMessage||o.message||e+" failed",o.error||o.errorCode||"")}})):d(r,"my."+e+" does not exist")}const u={handleMessage:function(e){const r=e.detail&&"object"==typeof e.detail?e.detail:{},s=r.type||"";if(console.log("[SDK] ← H5: "+s,JSON.stringify(r)),a&&a(r),!s)return;const t=p[s];if(t){const e=t.responseType||s+"_response",n=t.myApi||s,a=t.handler,p=t.paramsTransform,i=t.resultTransform;if("function"==typeof a)return void Promise.resolve(a(r,o)).then(o=>{l(e,o)}).catch(o=>{d(e,o.message||s+" failed")});return void m(n,p?p(r):{},e,i,r)}if(n&&"function"==typeof my[s])return console.log("[SDK] Dynamic proxy: my."+s),void m(s,r,s+"_response",void 0,r);console.warn("[SDK] Unregistered: "+s),d(s+"_response","Unsupported API: "+s)},sendToH5:c,pushToH5:function(e,o){c({type:"push",event:e,data:o,timestamp:Date.now()})},registerApi:function(e,o){p[e]=o},registerApis:function(e){for(const o in e)p[o]=e[o]},getRegisteredApis:function(){return Object.keys(p)}};return o.__bridgeProxy=u,u};
|
|
2
|
+
//# sourceMappingURL=index.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":["../../src/src/miniprogram/index.ts"],"sourcesContent":["declare const my: {\n createWebViewContext: (id: string) => WebViewContext;\n [key: string]: unknown;\n};\n\ninterface WebViewContext {\n postMessage: (message: Record<string, unknown>) => void;\n}\n\nexport type ApiHandler = (data: Record<string, unknown>, ctx: PageContext) => Promise<Record<string, unknown>>;\n\nexport interface ApiConfig {\n responseType?: string;\n myApi?: string;\n handler?: 'auto' | ApiHandler;\n paramsTransform?: (data: Record<string, unknown>) => Record<string, unknown>;\n resultTransform?: (res: Record<string, unknown>, data: Record<string, unknown>) => Record<string, unknown>;\n}\n\nexport interface BridgeProxyOptions {\n extraRegistry?: Record<string, ApiConfig>;\n allowDynamicProxy?: boolean;\n onMessage?: (data: Record<string, unknown>) => void;\n}\n\nexport interface BridgeProxy {\n handleMessage: (e: { detail?: Record<string, unknown> }) => void;\n sendToH5: (message: Record<string, unknown>) => void;\n pushToH5: (eventName: string, payload: unknown) => void;\n registerApi: (name: string, config: ApiConfig) => void;\n registerApis: (apis: Record<string, ApiConfig>) => void;\n getRegisteredApis: () => string[];\n}\n\ninterface PageContext {\n data: Record<string, unknown>;\n setData: (obj: Record<string, unknown>) => void;\n __bridgeProxy?: BridgeProxy;\n [key: string]: unknown;\n}\n\nexport const DEFAULT_REGISTRY: Record<string, ApiConfig> = {\n\n request_authcode: {\n responseType: 'authcode_response',\n myApi: 'getAuthCode',\n handler: 'auto',\n paramsTransform: (data) => ({ scopes: (data.scopes as string) || 'auth_base' }),\n resultTransform: (res) => ({ authCode: res.authCode }),\n },\n\n request_location: {\n responseType: 'location_response',\n myApi: 'getLocation',\n handler: 'auto',\n paramsTransform: (data) => ({ type: data.locationType || 0 }),\n resultTransform: (res) => ({\n latitude: res.latitude,\n longitude: res.longitude,\n accuracy: res.accuracy,\n horizontalAccuracy: res.horizontalAccuracy,\n city: res.city || '',\n cityCode: res.cityCode || '',\n district: res.district || '',\n province: res.province || '',\n street: res.street || '',\n streetNumber: res.streetNumber || '',\n }),\n },\n\n request_vibrate: {\n responseType: 'vibrate_response',\n myApi: 'vibrate',\n handler: 'auto',\n paramsTransform: (data) => ({ type: data.vibrateType || 'light' }),\n resultTransform: (_res, data) => ({ vibrateType: data.vibrateType || 'light', message: '震动执行成功' }),\n },\n\n set_navbar: {\n responseType: 'navbar_response',\n myApi: 'setNavigationBar',\n handler: 'auto',\n paramsTransform: (data) => {\n const config: Record<string, unknown> = {};\n if (data.title !== undefined) config.title = data.title;\n if (data.backgroundColor) config.backgroundColor = data.backgroundColor;\n if (data.borderBottomColor) config.borderBottomColor = data.borderBottomColor;\n if (data.image) config.image = data.image;\n return config;\n },\n resultTransform: (_res, data) => ({ message: '导航栏设置成功', title: data.title || '' }),\n },\n\n page_title: {\n responseType: 'title_response',\n handler: (data) => {\n return new Promise((resolve) => {\n (my as Record<string, Function>).setNavigationBar({ title: data.content || '' });\n resolve({ message: '标题设置成功', title: data.content as string });\n });\n },\n },\n\n reload_webview: {\n responseType: 'reload_response',\n handler: (data, ctx) => {\n return new Promise((resolve) => {\n const targetUrl = (data.url || ctx.data.webUrl || ctx.data.webViewUrl || '') as string;\n const baseUrl = targetUrl.replace(/[?&]t=\\d+/, '').replace(/[?&]$/, '');\n const separator = baseUrl.indexOf('?') > -1 ? '&' : '?';\n const webUrl = baseUrl + separator + 't=' + Date.now();\n const setObj: Record<string, unknown> = {};\n if (ctx.data.webUrl !== undefined) setObj.webUrl = webUrl;\n if (ctx.data.webViewUrl !== undefined) setObj.webViewUrl = webUrl;\n if (!setObj.webUrl && !setObj.webViewUrl) setObj.webUrl = webUrl;\n ctx.setData(setObj);\n resolve({ message: 'WebView 已重新加载', url: webUrl });\n });\n },\n },\n\n getSystemInfo: { responseType: 'getSystemInfo_response', handler: 'auto' },\n getNetworkType: { responseType: 'getNetworkType_response', handler: 'auto' },\n\n scan: {\n responseType: 'scan_response',\n handler: 'auto',\n paramsTransform: (data) => ({ type: data.scanType || 'qr' }),\n },\n\n showToast: {\n responseType: 'showToast_response',\n handler: 'auto',\n paramsTransform: (data) => ({\n content: data.content || data.title || '',\n type: data.toastType || 'none',\n duration: data.duration || 2000,\n }),\n },\n\n alert: {\n responseType: 'alert_response',\n handler: 'auto',\n paramsTransform: (data) => ({\n title: data.title || '',\n content: data.content || '',\n buttonText: data.buttonText || '确定',\n }),\n },\n\n confirm: {\n responseType: 'confirm_response',\n handler: 'auto',\n paramsTransform: (data) => ({\n title: data.title || '',\n content: data.content || '',\n confirmButtonText: data.confirmButtonText || '确定',\n cancelButtonText: data.cancelButtonText || '取消',\n }),\n },\n\n showLoading: {\n responseType: 'showLoading_response',\n handler: 'auto',\n paramsTransform: (data) => ({ content: data.content || '加载中...', delay: data.delay || 0 }),\n },\n\n hideLoading: { responseType: 'hideLoading_response', handler: 'auto' },\n\n getStorage: {\n responseType: 'getStorage_response',\n handler: 'auto',\n paramsTransform: (data) => ({ key: data.key || '' }),\n },\n\n setStorage: {\n responseType: 'setStorage_response',\n handler: 'auto',\n paramsTransform: (data) => ({ key: data.key || '', data: data.data }),\n },\n\n removeStorage: {\n responseType: 'removeStorage_response',\n handler: 'auto',\n paramsTransform: (data) => ({ key: data.key || '' }),\n },\n\n getClipboard: { responseType: 'getClipboard_response', handler: 'auto' },\n\n setClipboard: {\n responseType: 'setClipboard_response',\n handler: 'auto',\n paramsTransform: (data) => ({ text: data.text || '' }),\n },\n\n chooseImage: {\n responseType: 'chooseImage_response',\n handler: 'auto',\n paramsTransform: (data) => ({ count: data.count || 1, sourceType: data.sourceType || ['camera', 'album'] }),\n },\n\n previewImage: {\n responseType: 'previewImage_response',\n handler: 'auto',\n paramsTransform: (data) => ({ urls: data.urls || [], current: data.current || 0 }),\n },\n\n saveImage: {\n responseType: 'saveImage_response',\n handler: 'auto',\n paramsTransform: (data) => ({ url: data.url || '' }),\n },\n\n openLocation: {\n responseType: 'openLocation_response',\n handler: 'auto',\n paramsTransform: (data) => ({\n longitude: data.longitude || '',\n latitude: data.latitude || '',\n name: data.name || '',\n address: data.address || '',\n scale: data.scale || 15,\n }),\n },\n\n chooseLocation: { responseType: 'chooseLocation_response', handler: 'auto' },\n\n makePhoneCall: {\n responseType: 'makePhoneCall_response',\n handler: 'auto',\n paramsTransform: (data) => ({ number: data.number || '' }),\n },\n\n getScreenBrightness: { responseType: 'getScreenBrightness_response', handler: 'auto' },\n setScreenBrightness: {\n responseType: 'setScreenBrightness_response',\n handler: 'auto',\n paramsTransform: (data) => ({ brightness: data.brightness || 1 }),\n },\n setKeepScreenOn: {\n responseType: 'setKeepScreenOn_response',\n handler: 'auto',\n paramsTransform: (data) => ({ keepScreenOn: data.keepScreenOn !== false }),\n },\n\n choosePhoneContact: { responseType: 'choosePhoneContact_response', handler: 'auto' },\n chooseAlipayContact: {\n responseType: 'chooseAlipayContact_response',\n handler: 'auto',\n paramsTransform: (data) => ({ count: data.count || 1 }),\n },\n\n datePicker: {\n responseType: 'datePicker_response',\n handler: 'auto',\n paramsTransform: (data) => ({ format: data.format || 'yyyy-MM-dd', currentDate: data.currentDate || '' }),\n },\n\n showActionSheet: {\n responseType: 'showActionSheet_response',\n handler: 'auto',\n paramsTransform: (data) => ({ title: data.title || '', items: data.items || [], cancelButtonText: data.cancelButtonText || '取消' }),\n },\n\n openBluetoothAdapter: { responseType: 'openBluetoothAdapter_response', handler: 'auto' },\n closeBluetoothAdapter: { responseType: 'closeBluetoothAdapter_response', handler: 'auto' },\n getBluetoothAdapterState: { responseType: 'getBluetoothAdapterState_response', handler: 'auto' },\n startBluetoothDevicesDiscovery: {\n responseType: 'startBluetoothDevicesDiscovery_response',\n handler: 'auto',\n paramsTransform: (data) => ({ services: data.services || [] }),\n },\n stopBluetoothDevicesDiscovery: { responseType: 'stopBluetoothDevicesDiscovery_response', handler: 'auto' },\n getBluetoothDevices: { responseType: 'getBluetoothDevices_response', handler: 'auto' },\n getConnectedBluetoothDevices: {\n responseType: 'getConnectedBluetoothDevices_response',\n handler: 'auto',\n paramsTransform: (data) => ({ services: data.services || [] }),\n },\n connectBLEDevice: {\n responseType: 'connectBLEDevice_response',\n handler: 'auto',\n paramsTransform: (data) => ({ deviceId: data.deviceId || '' }),\n },\n disconnectBLEDevice: {\n responseType: 'disconnectBLEDevice_response',\n handler: 'auto',\n paramsTransform: (data) => ({ deviceId: data.deviceId || '' }),\n },\n getBLEDeviceServices: {\n responseType: 'getBLEDeviceServices_response',\n handler: 'auto',\n paramsTransform: (data) => ({ deviceId: data.deviceId || '' }),\n },\n getBLEDeviceCharacteristics: {\n responseType: 'getBLEDeviceCharacteristics_response',\n handler: 'auto',\n paramsTransform: (data) => ({ deviceId: data.deviceId || '', serviceId: data.serviceId || '' }),\n },\n\n navigateTo: {\n responseType: 'navigateTo_response',\n handler: 'auto',\n paramsTransform: (data) => ({ url: data.url || '' }),\n },\n navigateBack: {\n responseType: 'navigateBack_response',\n handler: 'auto',\n paramsTransform: (data) => ({ delta: data.delta || 1 }),\n },\n navigateToMiniProgram: {\n responseType: 'navigateToMiniProgram_response',\n handler: 'auto',\n paramsTransform: (data) => ({ appId: data.appId || '', path: data.path || '', extraData: data.extraData || {} }),\n },\n\n tradePay: {\n responseType: 'tradePay_response',\n handler: 'auto',\n paramsTransform: (data) => ({ tradeNO: data.tradeNO || data.orderStr || '' }),\n },\n\n getServerTime: { responseType: 'getServerTime_response', handler: 'auto' },\n\n httpRequest: {\n responseType: 'httpRequest_response',\n myApi: 'request',\n handler: 'auto',\n paramsTransform: (data) => ({\n url: data.url || '',\n method: data.method || 'GET',\n headers: data.headers || {},\n data: data.data || data.body || '',\n dataType: data.dataType || 'json',\n timeout: data.timeout || 30000,\n }),\n },\n\n startPullDownRefresh: { responseType: 'startPullDownRefresh_response', handler: 'auto' },\n stopPullDownRefresh: { responseType: 'stopPullDownRefresh_response', handler: 'auto' },\n getAddress: { responseType: 'getAddress_response', handler: 'auto' },\n getOpenUserInfo: { responseType: 'getOpenUserInfo_response', handler: 'auto' },\n getPhoneNumber: { responseType: 'getPhoneNumber_response', handler: 'auto' },\n\n startBioAuth: {\n responseType: 'startBioAuth_response',\n handler: 'auto',\n paramsTransform: (data) => ({ type: data.type || 'fingerPrint' }),\n },\n checkBioAuthMode: { responseType: 'checkBioAuthMode_response', handler: 'auto' },\n getBatteryInfo: { responseType: 'getBatteryInfo_response', handler: 'auto' },\n\n addPhoneCalendar: {\n responseType: 'addPhoneCalendar_response',\n handler: 'auto',\n paramsTransform: (data) => ({\n title: data.title || '',\n startDate: data.startDate || '',\n endDate: data.endDate || '',\n location: data.location || '',\n notes: data.notes || '',\n alarm: data.alarm !== undefined ? data.alarm : true,\n }),\n },\n\n getRunData: {\n responseType: 'getRunData_response',\n handler: 'auto',\n paramsTransform: (data) => ({ countDate: data.countDate || '' }),\n },\n\n startWifi: { responseType: 'startWifi_response', handler: 'auto' },\n stopWifi: { responseType: 'stopWifi_response', handler: 'auto' },\n getConnectedWifi: { responseType: 'getConnectedWifi_response', handler: 'auto' },\n connectWifi: {\n responseType: 'connectWifi_response',\n handler: 'auto',\n paramsTransform: (data) => ({ SSID: data.SSID || '', BSSID: data.BSSID || '', password: data.password || '' }),\n },\n\n // ========== Sensors (push mode) ==========\n\n startAccelerometer: {\n responseType: 'startAccelerometer_response',\n handler: (data, ctx) => {\n return new Promise((resolve) => {\n const interval = data.interval || 'normal';\n if (typeof my.onAccelerometerChange === 'function') {\n (my.onAccelerometerChange as Function)((res: unknown) => {\n if (ctx.__bridgeProxy && ctx.__bridgeProxy.pushToH5) {\n ctx.__bridgeProxy.pushToH5('accelerometerChange', res);\n }\n });\n }\n resolve({ message: '加速度计已启动', interval: interval as string });\n });\n },\n },\n\n stopAccelerometer: {\n responseType: 'stopAccelerometer_response',\n handler: (_data, _ctx) => {\n return new Promise((resolve) => {\n if (typeof my.offAccelerometerChange === 'function') (my.offAccelerometerChange as Function)();\n resolve({ message: '加速度计已停止' });\n });\n },\n },\n\n startGyroscope: {\n responseType: 'startGyroscope_response',\n handler: (data, ctx) => {\n return new Promise((resolve) => {\n const interval = data.interval || 'normal';\n if (typeof my.onGyroscopeChange === 'function') {\n (my.onGyroscopeChange as Function)((res: unknown) => {\n if (ctx.__bridgeProxy && ctx.__bridgeProxy.pushToH5) {\n ctx.__bridgeProxy.pushToH5('gyroscopeChange', res);\n }\n });\n }\n resolve({ message: '陀螺仪已启动', interval: interval as string });\n });\n },\n },\n\n stopGyroscope: {\n responseType: 'stopGyroscope_response',\n handler: (_data, _ctx) => {\n return new Promise((resolve) => {\n if (typeof my.offGyroscopeChange === 'function') (my.offGyroscopeChange as Function)();\n resolve({ message: '陀螺仪已停止' });\n });\n },\n },\n\n startCompass: {\n responseType: 'startCompass_response',\n handler: (_data, ctx) => {\n return new Promise((resolve) => {\n if (typeof my.onCompassChange === 'function') {\n (my.onCompassChange as Function)((res: unknown) => {\n if (ctx.__bridgeProxy && ctx.__bridgeProxy.pushToH5) {\n ctx.__bridgeProxy.pushToH5('compassChange', res);\n }\n });\n }\n resolve({ message: '罗盘已启动' });\n });\n },\n },\n\n stopCompass: {\n responseType: 'stopCompass_response',\n handler: (_data, _ctx) => {\n return new Promise((resolve) => {\n if (typeof my.offCompassChange === 'function') (my.offCompassChange as Function)();\n resolve({ message: '罗盘已停止' });\n });\n },\n },\n\n startDeviceMotionListening: {\n responseType: 'startDeviceMotionListening_response',\n handler: (_data, ctx) => {\n return new Promise((resolve) => {\n if (typeof my.onDeviceMotionChange === 'function') {\n (my.onDeviceMotionChange as Function)((res: unknown) => {\n if (ctx.__bridgeProxy && ctx.__bridgeProxy.pushToH5) {\n ctx.__bridgeProxy.pushToH5('deviceMotionChange', res);\n }\n });\n }\n resolve({ message: '设备运动监听已启动' });\n });\n },\n },\n\n stopDeviceMotionListening: {\n responseType: 'stopDeviceMotionListening_response',\n handler: (_data, _ctx) => {\n return new Promise((resolve) => {\n if (typeof my.offDeviceMotionChange === 'function') (my.offDeviceMotionChange as Function)();\n resolve({ message: '设备运动监听已停止' });\n });\n },\n },\n};\n\nexport function createBridgeProxy(pageContext: PageContext, options?: BridgeProxyOptions): BridgeProxy {\n const opts = options || {};\n const extraRegistry = opts.extraRegistry || {};\n const allowDynamicProxy = opts.allowDynamicProxy !== false;\n const onMessage = opts.onMessage || null;\n\n const registry: Record<string, ApiConfig> = {};\n for (const key in DEFAULT_REGISTRY) registry[key] = DEFAULT_REGISTRY[key];\n for (const key in extraRegistry) registry[key] = extraRegistry[key];\n\n let webViewContext: WebViewContext | null = null;\n\n function getWebViewContext(): WebViewContext | null {\n try {\n webViewContext = my.createWebViewContext('web-view');\n } catch (e) {\n console.error('[SDK] Failed to create WebView context:', e);\n }\n return webViewContext;\n }\n\n function sendToH5(message: Record<string, unknown>): void {\n const ctx = getWebViewContext();\n if (ctx) {\n ctx.postMessage(message);\n console.log('[SDK] → H5:', JSON.stringify(message));\n } else {\n console.error('[SDK] WebView context unavailable');\n }\n }\n\n function replySuccess(responseType: string, extraFields?: Record<string, unknown>): void {\n const msg: Record<string, unknown> = { type: responseType, status: 'success', timestamp: Date.now() };\n if (extraFields) {\n for (const k in extraFields) msg[k] = extraFields[k];\n }\n sendToH5(msg);\n }\n\n function replyFail(responseType: string, errorMessage: string, errorCode?: string): void {\n sendToH5({\n type: responseType,\n status: 'fail',\n errorMessage,\n errorCode: errorCode || '',\n timestamp: Date.now(),\n });\n }\n\n function invokeMyApi(\n myApiName: string,\n params: Record<string, unknown>,\n responseType: string,\n resultTransform?: ApiConfig['resultTransform'],\n originalData?: Record<string, unknown>,\n ): void {\n if (typeof my[myApiName] !== 'function') {\n replyFail(responseType, 'my.' + myApiName + ' does not exist');\n return;\n }\n\n (my[myApiName] as Function)({\n ...params,\n success: (res: Record<string, unknown>) => {\n console.log('[SDK] my.' + myApiName + ' success:', JSON.stringify(res));\n const fields = resultTransform ? resultTransform(res, originalData || {}) : res;\n replySuccess(responseType, fields);\n },\n fail: (err: Record<string, unknown>) => {\n console.error('[SDK] my.' + myApiName + ' fail:', JSON.stringify(err));\n replyFail(responseType, (err.errorMessage || err.message || myApiName + ' failed') as string, (err.error || err.errorCode || '') as string);\n },\n });\n }\n\n function handleMessage(e: { detail?: Record<string, unknown> }): void {\n const data = (e.detail && typeof e.detail === 'object') ? e.detail : {};\n const apiName = (data.type || '') as string;\n\n console.log('[SDK] ← H5: ' + apiName, JSON.stringify(data));\n if (onMessage) onMessage(data);\n if (!apiName) return;\n\n const config = registry[apiName];\n\n if (config) {\n const responseType = config.responseType || (apiName + '_response');\n const myApi = config.myApi || apiName;\n const handler = config.handler;\n const paramsTransform = config.paramsTransform;\n const resultTransform = config.resultTransform;\n\n if (typeof handler === 'function') {\n Promise.resolve(handler(data, pageContext))\n .then((result) => { replySuccess(responseType, result); })\n .catch((err: Error) => { replyFail(responseType, err.message || apiName + ' failed'); });\n return;\n }\n\n const apiParams = paramsTransform ? paramsTransform(data) : {};\n invokeMyApi(myApi, apiParams, responseType, resultTransform, data);\n return;\n }\n\n if (allowDynamicProxy && typeof my[apiName] === 'function') {\n console.log('[SDK] Dynamic proxy: my.' + apiName);\n invokeMyApi(apiName, data, apiName + '_response', undefined, data);\n return;\n }\n\n console.warn('[SDK] Unregistered: ' + apiName);\n replyFail(apiName + '_response', 'Unsupported API: ' + apiName);\n }\n\n function pushToH5(eventName: string, payload: unknown): void {\n sendToH5({ type: 'push', event: eventName, data: payload, timestamp: Date.now() });\n }\n\n function registerApi(name: string, config: ApiConfig): void { registry[name] = config; }\n function registerApis(apis: Record<string, ApiConfig>): void { for (const k in apis) registry[k] = apis[k]; }\n function getRegisteredApis(): string[] { return Object.keys(registry); }\n\n const proxyInstance: BridgeProxy = {\n handleMessage,\n sendToH5,\n pushToH5,\n registerApi,\n registerApis,\n getRegisteredApis,\n };\n\n pageContext.__bridgeProxy = proxyInstance;\n\n return proxyInstance;\n}\n"],"names":["DEFAULT_REGISTRY","request_authcode","responseType","myApi","handler","paramsTransform","data","scopes","resultTransform","res","authCode","request_location","type","locationType","latitude","longitude","accuracy","horizontalAccuracy","city","cityCode","district","province","street","streetNumber","request_vibrate","vibrateType","_res","message","set_navbar","config","undefined","title","backgroundColor","borderBottomColor","image","page_title","Promise","resolve","my","setNavigationBar","content","reload_webview","ctx","baseUrl","url","webUrl","webViewUrl","replace","separator","indexOf","Date","now","setObj","setData","getSystemInfo","getNetworkType","scan","scanType","showToast","toastType","duration","alert","buttonText","confirm","confirmButtonText","cancelButtonText","showLoading","delay","hideLoading","getStorage","key","setStorage","removeStorage","getClipboard","setClipboard","text","chooseImage","count","sourceType","previewImage","urls","current","saveImage","openLocation","name","address","scale","chooseLocation","makePhoneCall","number","getScreenBrightness","setScreenBrightness","brightness","setKeepScreenOn","keepScreenOn","choosePhoneContact","chooseAlipayContact","datePicker","format","currentDate","showActionSheet","items","openBluetoothAdapter","closeBluetoothAdapter","getBluetoothAdapterState","startBluetoothDevicesDiscovery","services","stopBluetoothDevicesDiscovery","getBluetoothDevices","getConnectedBluetoothDevices","connectBLEDevice","deviceId","disconnectBLEDevice","getBLEDeviceServices","getBLEDeviceCharacteristics","serviceId","navigateTo","navigateBack","delta","navigateToMiniProgram","appId","path","extraData","tradePay","tradeNO","orderStr","getServerTime","httpRequest","method","headers","body","dataType","timeout","startPullDownRefresh","stopPullDownRefresh","getAddress","getOpenUserInfo","getPhoneNumber","startBioAuth","checkBioAuthMode","getBatteryInfo","addPhoneCalendar","startDate","endDate","location","notes","alarm","getRunData","countDate","startWifi","stopWifi","getConnectedWifi","connectWifi","SSID","BSSID","password","startAccelerometer","interval","onAccelerometerChange","__bridgeProxy","pushToH5","stopAccelerometer","_data","_ctx","offAccelerometerChange","startGyroscope","onGyroscopeChange","stopGyroscope","offGyroscopeChange","startCompass","onCompassChange","stopCompass","offCompassChange","startDeviceMotionListening","onDeviceMotionChange","stopDeviceMotionListening","offDeviceMotionChange","pageContext","options","opts","extraRegistry","allowDynamicProxy","onMessage","registry","webViewContext","sendToH5","createWebViewContext","e","console","error","getWebViewContext","postMessage","log","JSON","stringify","replySuccess","extraFields","msg","status","timestamp","k","replyFail","errorMessage","errorCode","invokeMyApi","myApiName","params","originalData","Object","assign","success","fields","fail","err","proxyInstance","handleMessage","detail","apiName","then","result","catch","warn","eventName","payload","event","registerApi","registerApis","apis","getRegisteredApis","keys"],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export type ApiHandler = (data: Record<string, unknown>, ctx: PageContext) => Promise<Record<string, unknown>>;
|
|
2
|
+
export interface ApiConfig {
|
|
3
|
+
responseType?: string;
|
|
4
|
+
myApi?: string;
|
|
5
|
+
handler?: 'auto' | ApiHandler;
|
|
6
|
+
paramsTransform?: (data: Record<string, unknown>) => Record<string, unknown>;
|
|
7
|
+
resultTransform?: (res: Record<string, unknown>, data: Record<string, unknown>) => Record<string, unknown>;
|
|
8
|
+
}
|
|
9
|
+
export interface BridgeProxyOptions {
|
|
10
|
+
extraRegistry?: Record<string, ApiConfig>;
|
|
11
|
+
allowDynamicProxy?: boolean;
|
|
12
|
+
onMessage?: (data: Record<string, unknown>) => void;
|
|
13
|
+
}
|
|
14
|
+
export interface BridgeProxy {
|
|
15
|
+
handleMessage: (e: {
|
|
16
|
+
detail?: Record<string, unknown>;
|
|
17
|
+
}) => void;
|
|
18
|
+
sendToH5: (message: Record<string, unknown>) => void;
|
|
19
|
+
pushToH5: (eventName: string, payload: unknown) => void;
|
|
20
|
+
registerApi: (name: string, config: ApiConfig) => void;
|
|
21
|
+
registerApis: (apis: Record<string, ApiConfig>) => void;
|
|
22
|
+
getRegisteredApis: () => string[];
|
|
23
|
+
}
|
|
24
|
+
interface PageContext {
|
|
25
|
+
data: Record<string, unknown>;
|
|
26
|
+
setData: (obj: Record<string, unknown>) => void;
|
|
27
|
+
__bridgeProxy?: BridgeProxy;
|
|
28
|
+
[key: string]: unknown;
|
|
29
|
+
}
|
|
30
|
+
export declare const DEFAULT_REGISTRY: Record<string, ApiConfig>;
|
|
31
|
+
export declare function createBridgeProxy(pageContext: PageContext, options?: BridgeProxyOptions): BridgeProxy;
|
|
32
|
+
export {};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e={request_authcode:{responseType:"authcode_response",myApi:"getAuthCode",handler:"auto",paramsTransform:e=>({scopes:e.scopes||"auth_base"}),resultTransform:e=>({authCode:e.authCode})},request_location:{responseType:"location_response",myApi:"getLocation",handler:"auto",paramsTransform:e=>({type:e.locationType||0}),resultTransform:e=>({latitude:e.latitude,longitude:e.longitude,accuracy:e.accuracy,horizontalAccuracy:e.horizontalAccuracy,city:e.city||"",cityCode:e.cityCode||"",district:e.district||"",province:e.province||"",street:e.street||"",streetNumber:e.streetNumber||""})},request_vibrate:{responseType:"vibrate_response",myApi:"vibrate",handler:"auto",paramsTransform:e=>({type:e.vibrateType||"light"}),resultTransform:(e,o)=>({vibrateType:o.vibrateType||"light",message:"震动执行成功"})},set_navbar:{responseType:"navbar_response",myApi:"setNavigationBar",handler:"auto",paramsTransform:e=>{const o={};return void 0!==e.title&&(o.title=e.title),e.backgroundColor&&(o.backgroundColor=e.backgroundColor),e.borderBottomColor&&(o.borderBottomColor=e.borderBottomColor),e.image&&(o.image=e.image),o},resultTransform:(e,o)=>({message:"导航栏设置成功",title:o.title||""})},page_title:{responseType:"title_response",handler:e=>new Promise(o=>{my.setNavigationBar({title:e.content||""}),o({message:"标题设置成功",title:e.content})})},reload_webview:{responseType:"reload_response",handler:(e,o)=>new Promise(s=>{const r=(e.url||o.data.webUrl||o.data.webViewUrl||"").replace(/[?&]t=\d+/,"").replace(/[?&]$/,""),t=r.indexOf("?")>-1?"&":"?",n=r+t+"t="+Date.now(),a={};void 0!==o.data.webUrl&&(a.webUrl=n),void 0!==o.data.webViewUrl&&(a.webViewUrl=n),a.webUrl||a.webViewUrl||(a.webUrl=n),o.setData(a),s({message:"WebView 已重新加载",url:n})})},getSystemInfo:{responseType:"getSystemInfo_response",handler:"auto"},getNetworkType:{responseType:"getNetworkType_response",handler:"auto"},scan:{responseType:"scan_response",handler:"auto",paramsTransform:e=>({type:e.scanType||"qr"})},showToast:{responseType:"showToast_response",handler:"auto",paramsTransform:e=>({content:e.content||e.title||"",type:e.toastType||"none",duration:e.duration||2e3})},alert:{responseType:"alert_response",handler:"auto",paramsTransform:e=>({title:e.title||"",content:e.content||"",buttonText:e.buttonText||"确定"})},confirm:{responseType:"confirm_response",handler:"auto",paramsTransform:e=>({title:e.title||"",content:e.content||"",confirmButtonText:e.confirmButtonText||"确定",cancelButtonText:e.cancelButtonText||"取消"})},showLoading:{responseType:"showLoading_response",handler:"auto",paramsTransform:e=>({content:e.content||"加载中...",delay:e.delay||0})},hideLoading:{responseType:"hideLoading_response",handler:"auto"},getStorage:{responseType:"getStorage_response",handler:"auto",paramsTransform:e=>({key:e.key||""})},setStorage:{responseType:"setStorage_response",handler:"auto",paramsTransform:e=>({key:e.key||"",data:e.data})},removeStorage:{responseType:"removeStorage_response",handler:"auto",paramsTransform:e=>({key:e.key||""})},getClipboard:{responseType:"getClipboard_response",handler:"auto"},setClipboard:{responseType:"setClipboard_response",handler:"auto",paramsTransform:e=>({text:e.text||""})},chooseImage:{responseType:"chooseImage_response",handler:"auto",paramsTransform:e=>({count:e.count||1,sourceType:e.sourceType||["camera","album"]})},previewImage:{responseType:"previewImage_response",handler:"auto",paramsTransform:e=>({urls:e.urls||[],current:e.current||0})},saveImage:{responseType:"saveImage_response",handler:"auto",paramsTransform:e=>({url:e.url||""})},openLocation:{responseType:"openLocation_response",handler:"auto",paramsTransform:e=>({longitude:e.longitude||"",latitude:e.latitude||"",name:e.name||"",address:e.address||"",scale:e.scale||15})},chooseLocation:{responseType:"chooseLocation_response",handler:"auto"},makePhoneCall:{responseType:"makePhoneCall_response",handler:"auto",paramsTransform:e=>({number:e.number||""})},getScreenBrightness:{responseType:"getScreenBrightness_response",handler:"auto"},setScreenBrightness:{responseType:"setScreenBrightness_response",handler:"auto",paramsTransform:e=>({brightness:e.brightness||1})},setKeepScreenOn:{responseType:"setKeepScreenOn_response",handler:"auto",paramsTransform:e=>({keepScreenOn:!1!==e.keepScreenOn})},choosePhoneContact:{responseType:"choosePhoneContact_response",handler:"auto"},chooseAlipayContact:{responseType:"chooseAlipayContact_response",handler:"auto",paramsTransform:e=>({count:e.count||1})},datePicker:{responseType:"datePicker_response",handler:"auto",paramsTransform:e=>({format:e.format||"yyyy-MM-dd",currentDate:e.currentDate||""})},showActionSheet:{responseType:"showActionSheet_response",handler:"auto",paramsTransform:e=>({title:e.title||"",items:e.items||[],cancelButtonText:e.cancelButtonText||"取消"})},openBluetoothAdapter:{responseType:"openBluetoothAdapter_response",handler:"auto"},closeBluetoothAdapter:{responseType:"closeBluetoothAdapter_response",handler:"auto"},getBluetoothAdapterState:{responseType:"getBluetoothAdapterState_response",handler:"auto"},startBluetoothDevicesDiscovery:{responseType:"startBluetoothDevicesDiscovery_response",handler:"auto",paramsTransform:e=>({services:e.services||[]})},stopBluetoothDevicesDiscovery:{responseType:"stopBluetoothDevicesDiscovery_response",handler:"auto"},getBluetoothDevices:{responseType:"getBluetoothDevices_response",handler:"auto"},getConnectedBluetoothDevices:{responseType:"getConnectedBluetoothDevices_response",handler:"auto",paramsTransform:e=>({services:e.services||[]})},connectBLEDevice:{responseType:"connectBLEDevice_response",handler:"auto",paramsTransform:e=>({deviceId:e.deviceId||""})},disconnectBLEDevice:{responseType:"disconnectBLEDevice_response",handler:"auto",paramsTransform:e=>({deviceId:e.deviceId||""})},getBLEDeviceServices:{responseType:"getBLEDeviceServices_response",handler:"auto",paramsTransform:e=>({deviceId:e.deviceId||""})},getBLEDeviceCharacteristics:{responseType:"getBLEDeviceCharacteristics_response",handler:"auto",paramsTransform:e=>({deviceId:e.deviceId||"",serviceId:e.serviceId||""})},navigateTo:{responseType:"navigateTo_response",handler:"auto",paramsTransform:e=>({url:e.url||""})},navigateBack:{responseType:"navigateBack_response",handler:"auto",paramsTransform:e=>({delta:e.delta||1})},navigateToMiniProgram:{responseType:"navigateToMiniProgram_response",handler:"auto",paramsTransform:e=>({appId:e.appId||"",path:e.path||"",extraData:e.extraData||{}})},tradePay:{responseType:"tradePay_response",handler:"auto",paramsTransform:e=>({tradeNO:e.tradeNO||e.orderStr||""})},getServerTime:{responseType:"getServerTime_response",handler:"auto"},httpRequest:{responseType:"httpRequest_response",myApi:"request",handler:"auto",paramsTransform:e=>({url:e.url||"",method:e.method||"GET",headers:e.headers||{},data:e.data||e.body||"",dataType:e.dataType||"json",timeout:e.timeout||3e4})},startPullDownRefresh:{responseType:"startPullDownRefresh_response",handler:"auto"},stopPullDownRefresh:{responseType:"stopPullDownRefresh_response",handler:"auto"},getAddress:{responseType:"getAddress_response",handler:"auto"},getOpenUserInfo:{responseType:"getOpenUserInfo_response",handler:"auto"},getPhoneNumber:{responseType:"getPhoneNumber_response",handler:"auto"},startBioAuth:{responseType:"startBioAuth_response",handler:"auto",paramsTransform:e=>({type:e.type||"fingerPrint"})},checkBioAuthMode:{responseType:"checkBioAuthMode_response",handler:"auto"},getBatteryInfo:{responseType:"getBatteryInfo_response",handler:"auto"},addPhoneCalendar:{responseType:"addPhoneCalendar_response",handler:"auto",paramsTransform:e=>({title:e.title||"",startDate:e.startDate||"",endDate:e.endDate||"",location:e.location||"",notes:e.notes||"",alarm:void 0===e.alarm||e.alarm})},getRunData:{responseType:"getRunData_response",handler:"auto",paramsTransform:e=>({countDate:e.countDate||""})},startWifi:{responseType:"startWifi_response",handler:"auto"},stopWifi:{responseType:"stopWifi_response",handler:"auto"},getConnectedWifi:{responseType:"getConnectedWifi_response",handler:"auto"},connectWifi:{responseType:"connectWifi_response",handler:"auto",paramsTransform:e=>({SSID:e.SSID||"",BSSID:e.BSSID||"",password:e.password||""})},startAccelerometer:{responseType:"startAccelerometer_response",handler:(e,o)=>new Promise(s=>{const r=e.interval||"normal";"function"==typeof my.onAccelerometerChange&&my.onAccelerometerChange(e=>{o.__bridgeProxy&&o.__bridgeProxy.pushToH5&&o.__bridgeProxy.pushToH5("accelerometerChange",e)}),s({message:"加速度计已启动",interval:r})})},stopAccelerometer:{responseType:"stopAccelerometer_response",handler:(e,o)=>new Promise(e=>{"function"==typeof my.offAccelerometerChange&&my.offAccelerometerChange(),e({message:"加速度计已停止"})})},startGyroscope:{responseType:"startGyroscope_response",handler:(e,o)=>new Promise(s=>{const r=e.interval||"normal";"function"==typeof my.onGyroscopeChange&&my.onGyroscopeChange(e=>{o.__bridgeProxy&&o.__bridgeProxy.pushToH5&&o.__bridgeProxy.pushToH5("gyroscopeChange",e)}),s({message:"陀螺仪已启动",interval:r})})},stopGyroscope:{responseType:"stopGyroscope_response",handler:(e,o)=>new Promise(e=>{"function"==typeof my.offGyroscopeChange&&my.offGyroscopeChange(),e({message:"陀螺仪已停止"})})},startCompass:{responseType:"startCompass_response",handler:(e,o)=>new Promise(e=>{"function"==typeof my.onCompassChange&&my.onCompassChange(e=>{o.__bridgeProxy&&o.__bridgeProxy.pushToH5&&o.__bridgeProxy.pushToH5("compassChange",e)}),e({message:"罗盘已启动"})})},stopCompass:{responseType:"stopCompass_response",handler:(e,o)=>new Promise(e=>{"function"==typeof my.offCompassChange&&my.offCompassChange(),e({message:"罗盘已停止"})})},startDeviceMotionListening:{responseType:"startDeviceMotionListening_response",handler:(e,o)=>new Promise(e=>{"function"==typeof my.onDeviceMotionChange&&my.onDeviceMotionChange(e=>{o.__bridgeProxy&&o.__bridgeProxy.pushToH5&&o.__bridgeProxy.pushToH5("deviceMotionChange",e)}),e({message:"设备运动监听已启动"})})},stopDeviceMotionListening:{responseType:"stopDeviceMotionListening_response",handler:(e,o)=>new Promise(e=>{"function"==typeof my.offDeviceMotionChange&&my.offDeviceMotionChange(),e({message:"设备运动监听已停止"})})}};function o(o,s){const r=s||{},t=r.extraRegistry||{},n=!1!==r.allowDynamicProxy,a=r.onMessage||null,p={};for(const o in e)p[o]=e[o];for(const e in t)p[e]=t[e];let i=null;function c(e){const o=function(){try{i=my.createWebViewContext("web-view")}catch(e){console.error("[SDK] Failed to create WebView context:",e)}return i}();o?(o.postMessage(e),console.log("[SDK] → H5:",JSON.stringify(e))):console.error("[SDK] WebView context unavailable")}function l(e,o){const s={type:e,status:"success",timestamp:Date.now()};if(o)for(const e in o)s[e]=o[e];c(s)}function d(e,o,s){c({type:e,status:"fail",errorMessage:o,errorCode:s||"",timestamp:Date.now()})}function m(e,o,s,r,t){"function"==typeof my[e]?my[e](Object.assign(Object.assign({},o),{success:o=>{console.log("[SDK] my."+e+" success:",JSON.stringify(o));const n=r?r(o,t||{}):o;l(s,n)},fail:o=>{console.error("[SDK] my."+e+" fail:",JSON.stringify(o)),d(s,o.errorMessage||o.message||e+" failed",o.error||o.errorCode||"")}})):d(s,"my."+e+" does not exist")}const u={handleMessage:function(e){const s=e.detail&&"object"==typeof e.detail?e.detail:{},r=s.type||"";if(console.log("[SDK] ← H5: "+r,JSON.stringify(s)),a&&a(s),!r)return;const t=p[r];if(t){const e=t.responseType||r+"_response",n=t.myApi||r,a=t.handler,p=t.paramsTransform,i=t.resultTransform;if("function"==typeof a)return void Promise.resolve(a(s,o)).then(o=>{l(e,o)}).catch(o=>{d(e,o.message||r+" failed")});return void m(n,p?p(s):{},e,i,s)}if(n&&"function"==typeof my[r])return console.log("[SDK] Dynamic proxy: my."+r),void m(r,s,r+"_response",void 0,s);console.warn("[SDK] Unregistered: "+r),d(r+"_response","Unsupported API: "+r)},sendToH5:c,pushToH5:function(e,o){c({type:"push",event:e,data:o,timestamp:Date.now()})},registerApi:function(e,o){p[e]=o},registerApis:function(e){for(const o in e)p[o]=e[o]},getRegisteredApis:function(){return Object.keys(p)}};return o.__bridgeProxy=u,u}export{e as DEFAULT_REGISTRY,o as createBridgeProxy};
|
|
2
|
+
//# sourceMappingURL=index.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../../src/src/miniprogram/index.ts"],"sourcesContent":["declare const my: {\n createWebViewContext: (id: string) => WebViewContext;\n [key: string]: unknown;\n};\n\ninterface WebViewContext {\n postMessage: (message: Record<string, unknown>) => void;\n}\n\nexport type ApiHandler = (data: Record<string, unknown>, ctx: PageContext) => Promise<Record<string, unknown>>;\n\nexport interface ApiConfig {\n responseType?: string;\n myApi?: string;\n handler?: 'auto' | ApiHandler;\n paramsTransform?: (data: Record<string, unknown>) => Record<string, unknown>;\n resultTransform?: (res: Record<string, unknown>, data: Record<string, unknown>) => Record<string, unknown>;\n}\n\nexport interface BridgeProxyOptions {\n extraRegistry?: Record<string, ApiConfig>;\n allowDynamicProxy?: boolean;\n onMessage?: (data: Record<string, unknown>) => void;\n}\n\nexport interface BridgeProxy {\n handleMessage: (e: { detail?: Record<string, unknown> }) => void;\n sendToH5: (message: Record<string, unknown>) => void;\n pushToH5: (eventName: string, payload: unknown) => void;\n registerApi: (name: string, config: ApiConfig) => void;\n registerApis: (apis: Record<string, ApiConfig>) => void;\n getRegisteredApis: () => string[];\n}\n\ninterface PageContext {\n data: Record<string, unknown>;\n setData: (obj: Record<string, unknown>) => void;\n __bridgeProxy?: BridgeProxy;\n [key: string]: unknown;\n}\n\nexport const DEFAULT_REGISTRY: Record<string, ApiConfig> = {\n\n request_authcode: {\n responseType: 'authcode_response',\n myApi: 'getAuthCode',\n handler: 'auto',\n paramsTransform: (data) => ({ scopes: (data.scopes as string) || 'auth_base' }),\n resultTransform: (res) => ({ authCode: res.authCode }),\n },\n\n request_location: {\n responseType: 'location_response',\n myApi: 'getLocation',\n handler: 'auto',\n paramsTransform: (data) => ({ type: data.locationType || 0 }),\n resultTransform: (res) => ({\n latitude: res.latitude,\n longitude: res.longitude,\n accuracy: res.accuracy,\n horizontalAccuracy: res.horizontalAccuracy,\n city: res.city || '',\n cityCode: res.cityCode || '',\n district: res.district || '',\n province: res.province || '',\n street: res.street || '',\n streetNumber: res.streetNumber || '',\n }),\n },\n\n request_vibrate: {\n responseType: 'vibrate_response',\n myApi: 'vibrate',\n handler: 'auto',\n paramsTransform: (data) => ({ type: data.vibrateType || 'light' }),\n resultTransform: (_res, data) => ({ vibrateType: data.vibrateType || 'light', message: '震动执行成功' }),\n },\n\n set_navbar: {\n responseType: 'navbar_response',\n myApi: 'setNavigationBar',\n handler: 'auto',\n paramsTransform: (data) => {\n const config: Record<string, unknown> = {};\n if (data.title !== undefined) config.title = data.title;\n if (data.backgroundColor) config.backgroundColor = data.backgroundColor;\n if (data.borderBottomColor) config.borderBottomColor = data.borderBottomColor;\n if (data.image) config.image = data.image;\n return config;\n },\n resultTransform: (_res, data) => ({ message: '导航栏设置成功', title: data.title || '' }),\n },\n\n page_title: {\n responseType: 'title_response',\n handler: (data) => {\n return new Promise((resolve) => {\n (my as Record<string, Function>).setNavigationBar({ title: data.content || '' });\n resolve({ message: '标题设置成功', title: data.content as string });\n });\n },\n },\n\n reload_webview: {\n responseType: 'reload_response',\n handler: (data, ctx) => {\n return new Promise((resolve) => {\n const targetUrl = (data.url || ctx.data.webUrl || ctx.data.webViewUrl || '') as string;\n const baseUrl = targetUrl.replace(/[?&]t=\\d+/, '').replace(/[?&]$/, '');\n const separator = baseUrl.indexOf('?') > -1 ? '&' : '?';\n const webUrl = baseUrl + separator + 't=' + Date.now();\n const setObj: Record<string, unknown> = {};\n if (ctx.data.webUrl !== undefined) setObj.webUrl = webUrl;\n if (ctx.data.webViewUrl !== undefined) setObj.webViewUrl = webUrl;\n if (!setObj.webUrl && !setObj.webViewUrl) setObj.webUrl = webUrl;\n ctx.setData(setObj);\n resolve({ message: 'WebView 已重新加载', url: webUrl });\n });\n },\n },\n\n getSystemInfo: { responseType: 'getSystemInfo_response', handler: 'auto' },\n getNetworkType: { responseType: 'getNetworkType_response', handler: 'auto' },\n\n scan: {\n responseType: 'scan_response',\n handler: 'auto',\n paramsTransform: (data) => ({ type: data.scanType || 'qr' }),\n },\n\n showToast: {\n responseType: 'showToast_response',\n handler: 'auto',\n paramsTransform: (data) => ({\n content: data.content || data.title || '',\n type: data.toastType || 'none',\n duration: data.duration || 2000,\n }),\n },\n\n alert: {\n responseType: 'alert_response',\n handler: 'auto',\n paramsTransform: (data) => ({\n title: data.title || '',\n content: data.content || '',\n buttonText: data.buttonText || '确定',\n }),\n },\n\n confirm: {\n responseType: 'confirm_response',\n handler: 'auto',\n paramsTransform: (data) => ({\n title: data.title || '',\n content: data.content || '',\n confirmButtonText: data.confirmButtonText || '确定',\n cancelButtonText: data.cancelButtonText || '取消',\n }),\n },\n\n showLoading: {\n responseType: 'showLoading_response',\n handler: 'auto',\n paramsTransform: (data) => ({ content: data.content || '加载中...', delay: data.delay || 0 }),\n },\n\n hideLoading: { responseType: 'hideLoading_response', handler: 'auto' },\n\n getStorage: {\n responseType: 'getStorage_response',\n handler: 'auto',\n paramsTransform: (data) => ({ key: data.key || '' }),\n },\n\n setStorage: {\n responseType: 'setStorage_response',\n handler: 'auto',\n paramsTransform: (data) => ({ key: data.key || '', data: data.data }),\n },\n\n removeStorage: {\n responseType: 'removeStorage_response',\n handler: 'auto',\n paramsTransform: (data) => ({ key: data.key || '' }),\n },\n\n getClipboard: { responseType: 'getClipboard_response', handler: 'auto' },\n\n setClipboard: {\n responseType: 'setClipboard_response',\n handler: 'auto',\n paramsTransform: (data) => ({ text: data.text || '' }),\n },\n\n chooseImage: {\n responseType: 'chooseImage_response',\n handler: 'auto',\n paramsTransform: (data) => ({ count: data.count || 1, sourceType: data.sourceType || ['camera', 'album'] }),\n },\n\n previewImage: {\n responseType: 'previewImage_response',\n handler: 'auto',\n paramsTransform: (data) => ({ urls: data.urls || [], current: data.current || 0 }),\n },\n\n saveImage: {\n responseType: 'saveImage_response',\n handler: 'auto',\n paramsTransform: (data) => ({ url: data.url || '' }),\n },\n\n openLocation: {\n responseType: 'openLocation_response',\n handler: 'auto',\n paramsTransform: (data) => ({\n longitude: data.longitude || '',\n latitude: data.latitude || '',\n name: data.name || '',\n address: data.address || '',\n scale: data.scale || 15,\n }),\n },\n\n chooseLocation: { responseType: 'chooseLocation_response', handler: 'auto' },\n\n makePhoneCall: {\n responseType: 'makePhoneCall_response',\n handler: 'auto',\n paramsTransform: (data) => ({ number: data.number || '' }),\n },\n\n getScreenBrightness: { responseType: 'getScreenBrightness_response', handler: 'auto' },\n setScreenBrightness: {\n responseType: 'setScreenBrightness_response',\n handler: 'auto',\n paramsTransform: (data) => ({ brightness: data.brightness || 1 }),\n },\n setKeepScreenOn: {\n responseType: 'setKeepScreenOn_response',\n handler: 'auto',\n paramsTransform: (data) => ({ keepScreenOn: data.keepScreenOn !== false }),\n },\n\n choosePhoneContact: { responseType: 'choosePhoneContact_response', handler: 'auto' },\n chooseAlipayContact: {\n responseType: 'chooseAlipayContact_response',\n handler: 'auto',\n paramsTransform: (data) => ({ count: data.count || 1 }),\n },\n\n datePicker: {\n responseType: 'datePicker_response',\n handler: 'auto',\n paramsTransform: (data) => ({ format: data.format || 'yyyy-MM-dd', currentDate: data.currentDate || '' }),\n },\n\n showActionSheet: {\n responseType: 'showActionSheet_response',\n handler: 'auto',\n paramsTransform: (data) => ({ title: data.title || '', items: data.items || [], cancelButtonText: data.cancelButtonText || '取消' }),\n },\n\n openBluetoothAdapter: { responseType: 'openBluetoothAdapter_response', handler: 'auto' },\n closeBluetoothAdapter: { responseType: 'closeBluetoothAdapter_response', handler: 'auto' },\n getBluetoothAdapterState: { responseType: 'getBluetoothAdapterState_response', handler: 'auto' },\n startBluetoothDevicesDiscovery: {\n responseType: 'startBluetoothDevicesDiscovery_response',\n handler: 'auto',\n paramsTransform: (data) => ({ services: data.services || [] }),\n },\n stopBluetoothDevicesDiscovery: { responseType: 'stopBluetoothDevicesDiscovery_response', handler: 'auto' },\n getBluetoothDevices: { responseType: 'getBluetoothDevices_response', handler: 'auto' },\n getConnectedBluetoothDevices: {\n responseType: 'getConnectedBluetoothDevices_response',\n handler: 'auto',\n paramsTransform: (data) => ({ services: data.services || [] }),\n },\n connectBLEDevice: {\n responseType: 'connectBLEDevice_response',\n handler: 'auto',\n paramsTransform: (data) => ({ deviceId: data.deviceId || '' }),\n },\n disconnectBLEDevice: {\n responseType: 'disconnectBLEDevice_response',\n handler: 'auto',\n paramsTransform: (data) => ({ deviceId: data.deviceId || '' }),\n },\n getBLEDeviceServices: {\n responseType: 'getBLEDeviceServices_response',\n handler: 'auto',\n paramsTransform: (data) => ({ deviceId: data.deviceId || '' }),\n },\n getBLEDeviceCharacteristics: {\n responseType: 'getBLEDeviceCharacteristics_response',\n handler: 'auto',\n paramsTransform: (data) => ({ deviceId: data.deviceId || '', serviceId: data.serviceId || '' }),\n },\n\n navigateTo: {\n responseType: 'navigateTo_response',\n handler: 'auto',\n paramsTransform: (data) => ({ url: data.url || '' }),\n },\n navigateBack: {\n responseType: 'navigateBack_response',\n handler: 'auto',\n paramsTransform: (data) => ({ delta: data.delta || 1 }),\n },\n navigateToMiniProgram: {\n responseType: 'navigateToMiniProgram_response',\n handler: 'auto',\n paramsTransform: (data) => ({ appId: data.appId || '', path: data.path || '', extraData: data.extraData || {} }),\n },\n\n tradePay: {\n responseType: 'tradePay_response',\n handler: 'auto',\n paramsTransform: (data) => ({ tradeNO: data.tradeNO || data.orderStr || '' }),\n },\n\n getServerTime: { responseType: 'getServerTime_response', handler: 'auto' },\n\n httpRequest: {\n responseType: 'httpRequest_response',\n myApi: 'request',\n handler: 'auto',\n paramsTransform: (data) => ({\n url: data.url || '',\n method: data.method || 'GET',\n headers: data.headers || {},\n data: data.data || data.body || '',\n dataType: data.dataType || 'json',\n timeout: data.timeout || 30000,\n }),\n },\n\n startPullDownRefresh: { responseType: 'startPullDownRefresh_response', handler: 'auto' },\n stopPullDownRefresh: { responseType: 'stopPullDownRefresh_response', handler: 'auto' },\n getAddress: { responseType: 'getAddress_response', handler: 'auto' },\n getOpenUserInfo: { responseType: 'getOpenUserInfo_response', handler: 'auto' },\n getPhoneNumber: { responseType: 'getPhoneNumber_response', handler: 'auto' },\n\n startBioAuth: {\n responseType: 'startBioAuth_response',\n handler: 'auto',\n paramsTransform: (data) => ({ type: data.type || 'fingerPrint' }),\n },\n checkBioAuthMode: { responseType: 'checkBioAuthMode_response', handler: 'auto' },\n getBatteryInfo: { responseType: 'getBatteryInfo_response', handler: 'auto' },\n\n addPhoneCalendar: {\n responseType: 'addPhoneCalendar_response',\n handler: 'auto',\n paramsTransform: (data) => ({\n title: data.title || '',\n startDate: data.startDate || '',\n endDate: data.endDate || '',\n location: data.location || '',\n notes: data.notes || '',\n alarm: data.alarm !== undefined ? data.alarm : true,\n }),\n },\n\n getRunData: {\n responseType: 'getRunData_response',\n handler: 'auto',\n paramsTransform: (data) => ({ countDate: data.countDate || '' }),\n },\n\n startWifi: { responseType: 'startWifi_response', handler: 'auto' },\n stopWifi: { responseType: 'stopWifi_response', handler: 'auto' },\n getConnectedWifi: { responseType: 'getConnectedWifi_response', handler: 'auto' },\n connectWifi: {\n responseType: 'connectWifi_response',\n handler: 'auto',\n paramsTransform: (data) => ({ SSID: data.SSID || '', BSSID: data.BSSID || '', password: data.password || '' }),\n },\n\n // ========== Sensors (push mode) ==========\n\n startAccelerometer: {\n responseType: 'startAccelerometer_response',\n handler: (data, ctx) => {\n return new Promise((resolve) => {\n const interval = data.interval || 'normal';\n if (typeof my.onAccelerometerChange === 'function') {\n (my.onAccelerometerChange as Function)((res: unknown) => {\n if (ctx.__bridgeProxy && ctx.__bridgeProxy.pushToH5) {\n ctx.__bridgeProxy.pushToH5('accelerometerChange', res);\n }\n });\n }\n resolve({ message: '加速度计已启动', interval: interval as string });\n });\n },\n },\n\n stopAccelerometer: {\n responseType: 'stopAccelerometer_response',\n handler: (_data, _ctx) => {\n return new Promise((resolve) => {\n if (typeof my.offAccelerometerChange === 'function') (my.offAccelerometerChange as Function)();\n resolve({ message: '加速度计已停止' });\n });\n },\n },\n\n startGyroscope: {\n responseType: 'startGyroscope_response',\n handler: (data, ctx) => {\n return new Promise((resolve) => {\n const interval = data.interval || 'normal';\n if (typeof my.onGyroscopeChange === 'function') {\n (my.onGyroscopeChange as Function)((res: unknown) => {\n if (ctx.__bridgeProxy && ctx.__bridgeProxy.pushToH5) {\n ctx.__bridgeProxy.pushToH5('gyroscopeChange', res);\n }\n });\n }\n resolve({ message: '陀螺仪已启动', interval: interval as string });\n });\n },\n },\n\n stopGyroscope: {\n responseType: 'stopGyroscope_response',\n handler: (_data, _ctx) => {\n return new Promise((resolve) => {\n if (typeof my.offGyroscopeChange === 'function') (my.offGyroscopeChange as Function)();\n resolve({ message: '陀螺仪已停止' });\n });\n },\n },\n\n startCompass: {\n responseType: 'startCompass_response',\n handler: (_data, ctx) => {\n return new Promise((resolve) => {\n if (typeof my.onCompassChange === 'function') {\n (my.onCompassChange as Function)((res: unknown) => {\n if (ctx.__bridgeProxy && ctx.__bridgeProxy.pushToH5) {\n ctx.__bridgeProxy.pushToH5('compassChange', res);\n }\n });\n }\n resolve({ message: '罗盘已启动' });\n });\n },\n },\n\n stopCompass: {\n responseType: 'stopCompass_response',\n handler: (_data, _ctx) => {\n return new Promise((resolve) => {\n if (typeof my.offCompassChange === 'function') (my.offCompassChange as Function)();\n resolve({ message: '罗盘已停止' });\n });\n },\n },\n\n startDeviceMotionListening: {\n responseType: 'startDeviceMotionListening_response',\n handler: (_data, ctx) => {\n return new Promise((resolve) => {\n if (typeof my.onDeviceMotionChange === 'function') {\n (my.onDeviceMotionChange as Function)((res: unknown) => {\n if (ctx.__bridgeProxy && ctx.__bridgeProxy.pushToH5) {\n ctx.__bridgeProxy.pushToH5('deviceMotionChange', res);\n }\n });\n }\n resolve({ message: '设备运动监听已启动' });\n });\n },\n },\n\n stopDeviceMotionListening: {\n responseType: 'stopDeviceMotionListening_response',\n handler: (_data, _ctx) => {\n return new Promise((resolve) => {\n if (typeof my.offDeviceMotionChange === 'function') (my.offDeviceMotionChange as Function)();\n resolve({ message: '设备运动监听已停止' });\n });\n },\n },\n};\n\nexport function createBridgeProxy(pageContext: PageContext, options?: BridgeProxyOptions): BridgeProxy {\n const opts = options || {};\n const extraRegistry = opts.extraRegistry || {};\n const allowDynamicProxy = opts.allowDynamicProxy !== false;\n const onMessage = opts.onMessage || null;\n\n const registry: Record<string, ApiConfig> = {};\n for (const key in DEFAULT_REGISTRY) registry[key] = DEFAULT_REGISTRY[key];\n for (const key in extraRegistry) registry[key] = extraRegistry[key];\n\n let webViewContext: WebViewContext | null = null;\n\n function getWebViewContext(): WebViewContext | null {\n try {\n webViewContext = my.createWebViewContext('web-view');\n } catch (e) {\n console.error('[SDK] Failed to create WebView context:', e);\n }\n return webViewContext;\n }\n\n function sendToH5(message: Record<string, unknown>): void {\n const ctx = getWebViewContext();\n if (ctx) {\n ctx.postMessage(message);\n console.log('[SDK] → H5:', JSON.stringify(message));\n } else {\n console.error('[SDK] WebView context unavailable');\n }\n }\n\n function replySuccess(responseType: string, extraFields?: Record<string, unknown>): void {\n const msg: Record<string, unknown> = { type: responseType, status: 'success', timestamp: Date.now() };\n if (extraFields) {\n for (const k in extraFields) msg[k] = extraFields[k];\n }\n sendToH5(msg);\n }\n\n function replyFail(responseType: string, errorMessage: string, errorCode?: string): void {\n sendToH5({\n type: responseType,\n status: 'fail',\n errorMessage,\n errorCode: errorCode || '',\n timestamp: Date.now(),\n });\n }\n\n function invokeMyApi(\n myApiName: string,\n params: Record<string, unknown>,\n responseType: string,\n resultTransform?: ApiConfig['resultTransform'],\n originalData?: Record<string, unknown>,\n ): void {\n if (typeof my[myApiName] !== 'function') {\n replyFail(responseType, 'my.' + myApiName + ' does not exist');\n return;\n }\n\n (my[myApiName] as Function)({\n ...params,\n success: (res: Record<string, unknown>) => {\n console.log('[SDK] my.' + myApiName + ' success:', JSON.stringify(res));\n const fields = resultTransform ? resultTransform(res, originalData || {}) : res;\n replySuccess(responseType, fields);\n },\n fail: (err: Record<string, unknown>) => {\n console.error('[SDK] my.' + myApiName + ' fail:', JSON.stringify(err));\n replyFail(responseType, (err.errorMessage || err.message || myApiName + ' failed') as string, (err.error || err.errorCode || '') as string);\n },\n });\n }\n\n function handleMessage(e: { detail?: Record<string, unknown> }): void {\n const data = (e.detail && typeof e.detail === 'object') ? e.detail : {};\n const apiName = (data.type || '') as string;\n\n console.log('[SDK] ← H5: ' + apiName, JSON.stringify(data));\n if (onMessage) onMessage(data);\n if (!apiName) return;\n\n const config = registry[apiName];\n\n if (config) {\n const responseType = config.responseType || (apiName + '_response');\n const myApi = config.myApi || apiName;\n const handler = config.handler;\n const paramsTransform = config.paramsTransform;\n const resultTransform = config.resultTransform;\n\n if (typeof handler === 'function') {\n Promise.resolve(handler(data, pageContext))\n .then((result) => { replySuccess(responseType, result); })\n .catch((err: Error) => { replyFail(responseType, err.message || apiName + ' failed'); });\n return;\n }\n\n const apiParams = paramsTransform ? paramsTransform(data) : {};\n invokeMyApi(myApi, apiParams, responseType, resultTransform, data);\n return;\n }\n\n if (allowDynamicProxy && typeof my[apiName] === 'function') {\n console.log('[SDK] Dynamic proxy: my.' + apiName);\n invokeMyApi(apiName, data, apiName + '_response', undefined, data);\n return;\n }\n\n console.warn('[SDK] Unregistered: ' + apiName);\n replyFail(apiName + '_response', 'Unsupported API: ' + apiName);\n }\n\n function pushToH5(eventName: string, payload: unknown): void {\n sendToH5({ type: 'push', event: eventName, data: payload, timestamp: Date.now() });\n }\n\n function registerApi(name: string, config: ApiConfig): void { registry[name] = config; }\n function registerApis(apis: Record<string, ApiConfig>): void { for (const k in apis) registry[k] = apis[k]; }\n function getRegisteredApis(): string[] { return Object.keys(registry); }\n\n const proxyInstance: BridgeProxy = {\n handleMessage,\n sendToH5,\n pushToH5,\n registerApi,\n registerApis,\n getRegisteredApis,\n };\n\n pageContext.__bridgeProxy = proxyInstance;\n\n return proxyInstance;\n}\n"],"names":["DEFAULT_REGISTRY","request_authcode","responseType","myApi","handler","paramsTransform","data","scopes","resultTransform","res","authCode","request_location","type","locationType","latitude","longitude","accuracy","horizontalAccuracy","city","cityCode","district","province","street","streetNumber","request_vibrate","vibrateType","_res","message","set_navbar","config","undefined","title","backgroundColor","borderBottomColor","image","page_title","Promise","resolve","my","setNavigationBar","content","reload_webview","ctx","baseUrl","url","webUrl","webViewUrl","replace","separator","indexOf","Date","now","setObj","setData","getSystemInfo","getNetworkType","scan","scanType","showToast","toastType","duration","alert","buttonText","confirm","confirmButtonText","cancelButtonText","showLoading","delay","hideLoading","getStorage","key","setStorage","removeStorage","getClipboard","setClipboard","text","chooseImage","count","sourceType","previewImage","urls","current","saveImage","openLocation","name","address","scale","chooseLocation","makePhoneCall","number","getScreenBrightness","setScreenBrightness","brightness","setKeepScreenOn","keepScreenOn","choosePhoneContact","chooseAlipayContact","datePicker","format","currentDate","showActionSheet","items","openBluetoothAdapter","closeBluetoothAdapter","getBluetoothAdapterState","startBluetoothDevicesDiscovery","services","stopBluetoothDevicesDiscovery","getBluetoothDevices","getConnectedBluetoothDevices","connectBLEDevice","deviceId","disconnectBLEDevice","getBLEDeviceServices","getBLEDeviceCharacteristics","serviceId","navigateTo","navigateBack","delta","navigateToMiniProgram","appId","path","extraData","tradePay","tradeNO","orderStr","getServerTime","httpRequest","method","headers","body","dataType","timeout","startPullDownRefresh","stopPullDownRefresh","getAddress","getOpenUserInfo","getPhoneNumber","startBioAuth","checkBioAuthMode","getBatteryInfo","addPhoneCalendar","startDate","endDate","location","notes","alarm","getRunData","countDate","startWifi","stopWifi","getConnectedWifi","connectWifi","SSID","BSSID","password","startAccelerometer","interval","onAccelerometerChange","__bridgeProxy","pushToH5","stopAccelerometer","_data","_ctx","offAccelerometerChange","startGyroscope","onGyroscopeChange","stopGyroscope","offGyroscopeChange","startCompass","onCompassChange","stopCompass","offCompassChange","startDeviceMotionListening","onDeviceMotionChange","stopDeviceMotionListening","offDeviceMotionChange","createBridgeProxy","pageContext","options","opts","extraRegistry","allowDynamicProxy","onMessage","registry","webViewContext","sendToH5","createWebViewContext","e","console","error","getWebViewContext","postMessage","log","JSON","stringify","replySuccess","extraFields","msg","status","timestamp","k","replyFail","errorMessage","errorCode","invokeMyApi","myApiName","params","originalData","Object","assign","success","fields","fail","err","proxyInstance","handleMessage","detail","apiName","then","result","catch","warn","eventName","payload","event","registerApi","registerApis","apis","getRegisteredApis","keys"],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "alipay-webview-bridge",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "H5 WebView 与支付宝小程序双向通信适配器",
|
|
5
|
+
"keywords": ["alipay", "miniprogram", "webview", "bridge", "postMessage"],
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"exports": {
|
|
9
|
+
"./h5": {
|
|
10
|
+
"import": "./dist/h5/index.esm.js",
|
|
11
|
+
"require": "./dist/h5/index.cjs.js",
|
|
12
|
+
"types": "./dist/h5/index.d.ts"
|
|
13
|
+
},
|
|
14
|
+
"./miniprogram": {
|
|
15
|
+
"import": "./dist/miniprogram/index.esm.js",
|
|
16
|
+
"require": "./dist/miniprogram/index.cjs.js",
|
|
17
|
+
"types": "./dist/miniprogram/index.d.ts"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"files": [
|
|
21
|
+
"dist",
|
|
22
|
+
"README.md"
|
|
23
|
+
],
|
|
24
|
+
"scripts": {
|
|
25
|
+
"build": "rollup -c rollup.config.mjs",
|
|
26
|
+
"clean": "rm -rf dist",
|
|
27
|
+
"dev": "rollup -c rollup.config.mjs --watch",
|
|
28
|
+
"prepublishOnly": "npm run clean && npm run build"
|
|
29
|
+
},
|
|
30
|
+
"devDependencies": {
|
|
31
|
+
"@rollup/plugin-node-resolve": "^15.2.3",
|
|
32
|
+
"@rollup/plugin-typescript": "^11.1.6",
|
|
33
|
+
"rollup": "^4.18.0",
|
|
34
|
+
"@rollup/plugin-terser": "^0.4.4",
|
|
35
|
+
"tslib": "^2.6.3",
|
|
36
|
+
"typescript": "^5.5.0"
|
|
37
|
+
}
|
|
38
|
+
}
|