@lemon-fe/mini-app 1.1.3 → 1.1.5
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/es/constants/index.d.ts +0 -2
- package/es/constants/index.js +1 -3
- package/es/global.d.ts +19 -2
- package/es/global.js +55 -26
- package/package.json +2 -2
package/es/constants/index.d.ts
CHANGED
|
@@ -2,7 +2,6 @@ export declare const GO_BACK = "GO_BACK";
|
|
|
2
2
|
export declare const METHOD = "METHOD";
|
|
3
3
|
export declare const METHOD_CALLBACK = "METHOD_CALLBACK";
|
|
4
4
|
export declare const INIT_IFRAME = "INIT_IFRAME";
|
|
5
|
-
export declare const LEMON_APP_EXTRA_PAYLOAD = "LEMON_APP_EXTRA_PAYLOAD";
|
|
6
5
|
export declare const SCAN_CODE = "SCAN_CODE";
|
|
7
6
|
export declare const EXIT = "EXIT";
|
|
8
7
|
export declare const SET_STATUS_BAR_STYLE = "SET_STATUS_BAR_STYLE";
|
|
@@ -10,7 +9,6 @@ export declare const GET_USER_INFO = "GET_USER_INFO";
|
|
|
10
9
|
export declare const GET_ACCESS_TOKEN = "GET_ACCESS_TOKEN";
|
|
11
10
|
export declare const CHECK_ACCESS_TOKEN = "CHECK_ACCESS_TOKEN";
|
|
12
11
|
export declare const SET_CAPSULE = "SET_CAPSULE";
|
|
13
|
-
export declare const SET_EXTRA_PAYLOAD = "SET_EXTRA_PAYLOAD";
|
|
14
12
|
export declare const SYNC_ROUTES = "SYNC_ROUTES";
|
|
15
13
|
export declare const NEXT_ACTION = "NEXT_ACTION";
|
|
16
14
|
export declare const REQUEST_PAYMENT = "REQUEST_PAYMENT";
|
package/es/constants/index.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
export var GO_BACK = 'GO_BACK';
|
|
2
2
|
export var METHOD = 'METHOD';
|
|
3
3
|
export var METHOD_CALLBACK = 'METHOD_CALLBACK';
|
|
4
|
-
export var INIT_IFRAME = 'INIT_IFRAME';
|
|
5
|
-
export var LEMON_APP_EXTRA_PAYLOAD = 'LEMON_APP_EXTRA_PAYLOAD'; // methods
|
|
4
|
+
export var INIT_IFRAME = 'INIT_IFRAME'; // methods
|
|
6
5
|
|
|
7
6
|
export var SCAN_CODE = 'SCAN_CODE';
|
|
8
7
|
export var EXIT = 'EXIT';
|
|
@@ -11,7 +10,6 @@ export var GET_USER_INFO = 'GET_USER_INFO';
|
|
|
11
10
|
export var GET_ACCESS_TOKEN = 'GET_ACCESS_TOKEN';
|
|
12
11
|
export var CHECK_ACCESS_TOKEN = 'CHECK_ACCESS_TOKEN';
|
|
13
12
|
export var SET_CAPSULE = 'SET_CAPSULE';
|
|
14
|
-
export var SET_EXTRA_PAYLOAD = 'SET_EXTRA_PAYLOAD';
|
|
15
13
|
export var SYNC_ROUTES = 'SYNC_ROUTES';
|
|
16
14
|
export var NEXT_ACTION = 'NEXT_ACTION';
|
|
17
15
|
export var REQUEST_PAYMENT = 'REQUEST_PAYMENT';
|
package/es/global.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ declare global {
|
|
|
4
4
|
mini?: Partial<typeof bridge>;
|
|
5
5
|
ReactNativeWebView?: {
|
|
6
6
|
postMessage: (e: string) => void;
|
|
7
|
+
injectedObjectJson?: () => string;
|
|
7
8
|
};
|
|
8
9
|
}
|
|
9
10
|
}
|
|
@@ -18,7 +19,15 @@ declare const bridge: {
|
|
|
18
19
|
left: number;
|
|
19
20
|
};
|
|
20
21
|
};
|
|
21
|
-
getExtraPayload():
|
|
22
|
+
getExtraPayload(): {};
|
|
23
|
+
getMenuButtonBoundingClientRect(): {
|
|
24
|
+
bottom: number;
|
|
25
|
+
height: number;
|
|
26
|
+
left: number;
|
|
27
|
+
right: number;
|
|
28
|
+
top: number;
|
|
29
|
+
width: number;
|
|
30
|
+
};
|
|
22
31
|
methodRegister(name: string, opts?: {
|
|
23
32
|
success?: ((value: any) => void) | undefined;
|
|
24
33
|
fail?: ((err: Error) => void) | undefined;
|
|
@@ -106,7 +115,15 @@ export declare const mini: {
|
|
|
106
115
|
left: number;
|
|
107
116
|
};
|
|
108
117
|
};
|
|
109
|
-
getExtraPayload: () =>
|
|
118
|
+
getExtraPayload: () => {};
|
|
119
|
+
getMenuButtonBoundingClientRect: () => {
|
|
120
|
+
bottom: number;
|
|
121
|
+
height: number;
|
|
122
|
+
left: number;
|
|
123
|
+
right: number;
|
|
124
|
+
top: number;
|
|
125
|
+
width: number;
|
|
126
|
+
};
|
|
110
127
|
methodRegister: (name: string, opts?: {
|
|
111
128
|
success?: ((value: any) => void) | undefined;
|
|
112
129
|
fail?: ((err: Error) => void) | undefined;
|
package/es/global.js
CHANGED
|
@@ -4,14 +4,26 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
|
4
4
|
|
|
5
5
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
6
6
|
|
|
7
|
-
import { CHECK_ACCESS_TOKEN, EXIT, GET_ACCESS_TOKEN, GET_USER_INFO, INIT_IFRAME,
|
|
8
|
-
var whiteList = ['localhost', 'csp.nhsoft.cn', '127.0.0.1'];
|
|
7
|
+
import { CHECK_ACCESS_TOKEN, EXIT, GET_ACCESS_TOKEN, GET_USER_INFO, INIT_IFRAME, METHOD, METHOD_CALLBACK, NAVIGATE, NEXT_ACTION, REQUEST_PAYMENT, SCAN_CODE, SET_CAPSULE, SET_STATUS_BAR_STYLE, SYNC_ROUTES } from './constants';
|
|
9
8
|
var methods = {};
|
|
10
9
|
var listeners = [];
|
|
11
10
|
var methodID = 0;
|
|
11
|
+
|
|
12
|
+
function getInjectedObject(key, defaultValue) {
|
|
13
|
+
var _window$ReactNativeWe, _window$ReactNativeWe2;
|
|
14
|
+
|
|
15
|
+
var data = (_window$ReactNativeWe = window.ReactNativeWebView) === null || _window$ReactNativeWe === void 0 ? void 0 : (_window$ReactNativeWe2 = _window$ReactNativeWe.injectedObjectJson) === null || _window$ReactNativeWe2 === void 0 ? void 0 : _window$ReactNativeWe2.call(_window$ReactNativeWe);
|
|
16
|
+
|
|
17
|
+
if (data) {
|
|
18
|
+
return JSON.parse(data)[key] || defaultValue;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
return defaultValue;
|
|
22
|
+
}
|
|
23
|
+
|
|
12
24
|
var bridge = {
|
|
13
25
|
getSystemInfoSync: function getSystemInfoSync() {
|
|
14
|
-
return {
|
|
26
|
+
return getInjectedObject('systemInfo', {
|
|
15
27
|
statusBarHeight: 0,
|
|
16
28
|
pixelRatio: 1,
|
|
17
29
|
safeArea: {
|
|
@@ -20,20 +32,30 @@ var bridge = {
|
|
|
20
32
|
bottom: 0,
|
|
21
33
|
left: 0
|
|
22
34
|
}
|
|
23
|
-
};
|
|
35
|
+
});
|
|
24
36
|
},
|
|
25
37
|
getExtraPayload: function getExtraPayload() {
|
|
26
|
-
return
|
|
38
|
+
return getInjectedObject('extraPayload', {});
|
|
39
|
+
},
|
|
40
|
+
getMenuButtonBoundingClientRect: function getMenuButtonBoundingClientRect() {
|
|
41
|
+
return getInjectedObject('menuButtonBoundingClientRect', {
|
|
42
|
+
bottom: 0,
|
|
43
|
+
height: 0,
|
|
44
|
+
left: 0,
|
|
45
|
+
right: 0,
|
|
46
|
+
top: 0,
|
|
47
|
+
width: 0
|
|
48
|
+
});
|
|
27
49
|
},
|
|
28
50
|
methodRegister: function methodRegister(name) {
|
|
29
|
-
var _window$
|
|
51
|
+
var _window$ReactNativeWe3;
|
|
30
52
|
|
|
31
53
|
var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
32
54
|
methods[methodID] = {
|
|
33
55
|
success: opts.success,
|
|
34
56
|
fail: opts.fail
|
|
35
57
|
};
|
|
36
|
-
(_window$
|
|
58
|
+
(_window$ReactNativeWe3 = window.ReactNativeWebView) === null || _window$ReactNativeWe3 === void 0 ? void 0 : _window$ReactNativeWe3.postMessage(JSON.stringify({
|
|
37
59
|
type: METHOD,
|
|
38
60
|
target: {
|
|
39
61
|
id: methodID,
|
|
@@ -168,10 +190,25 @@ window.mini = mini;
|
|
|
168
190
|
* init web
|
|
169
191
|
*/
|
|
170
192
|
|
|
171
|
-
|
|
193
|
+
var urlSearch = new URLSearchParams(window.location.search);
|
|
194
|
+
|
|
195
|
+
if (urlSearch.has('__APP_DEV_TOOLS__')) {
|
|
196
|
+
var _injectedObjectJson = '{}';
|
|
197
|
+
|
|
198
|
+
if (urlSearch.has('__INJECTED_OBJECT_JSON__')) {
|
|
199
|
+
try {
|
|
200
|
+
_injectedObjectJson = window.atob(urlSearch.get('__INJECTED_OBJECT_JSON__'));
|
|
201
|
+
} catch (err) {
|
|
202
|
+
console.log('解析注入属性失败');
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
|
|
172
206
|
window.ReactNativeWebView = {
|
|
173
207
|
postMessage: function postMessage(e) {
|
|
174
208
|
window.parent.postMessage(e, '*');
|
|
209
|
+
},
|
|
210
|
+
injectedObjectJson: function injectedObjectJson() {
|
|
211
|
+
return _injectedObjectJson;
|
|
175
212
|
}
|
|
176
213
|
};
|
|
177
214
|
mini.loaded = true;
|
|
@@ -193,27 +230,19 @@ if (new URLSearchParams(window.location.search).has('__APP_DEV_TOOLS__')) {
|
|
|
193
230
|
}
|
|
194
231
|
}), '*');
|
|
195
232
|
window.addEventListener('message', function (evt) {
|
|
196
|
-
var
|
|
197
|
-
|
|
198
|
-
if (result !== null && whiteList.includes(result[4])) {
|
|
199
|
-
var action = evt.data;
|
|
233
|
+
var action = evt.data;
|
|
200
234
|
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
break;
|
|
235
|
+
switch (action.type) {
|
|
236
|
+
case METHOD_CALLBACK:
|
|
237
|
+
var msg = action.payload;
|
|
205
238
|
|
|
206
|
-
|
|
207
|
-
|
|
239
|
+
if (msg.type === 'success') {
|
|
240
|
+
mini.methodSuccess(msg.id, msg.data);
|
|
241
|
+
} else {
|
|
242
|
+
mini.methodFail(msg.id, new Error(msg.data));
|
|
243
|
+
}
|
|
208
244
|
|
|
209
|
-
|
|
210
|
-
mini.methodSuccess(msg.id, msg.data);
|
|
211
|
-
} else {
|
|
212
|
-
mini.methodFail(msg.id, new Error(msg.data));
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
default:
|
|
216
|
-
}
|
|
245
|
+
default:
|
|
217
246
|
}
|
|
218
247
|
}, false);
|
|
219
248
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lemon-fe/mini-app",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.5",
|
|
4
4
|
"description": "> TODO: description",
|
|
5
5
|
"author": "鲁盛杰 <lusj@cnlemon.net>",
|
|
6
6
|
"homepage": "",
|
|
@@ -31,5 +31,5 @@
|
|
|
31
31
|
"react": "^17.0.2",
|
|
32
32
|
"react-dom": "17.0.2"
|
|
33
33
|
},
|
|
34
|
-
"gitHead": "
|
|
34
|
+
"gitHead": "e4b6e1f4d04b766d37ab7e5914bc7a5e02f0eb9c"
|
|
35
35
|
}
|