@onekeyfe/onekey-cross-webview 1.1.0 → 1.1.2
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/dist/DesktopWebView.js
CHANGED
|
@@ -51,14 +51,14 @@ const DesktopWebView = forwardRef((_a, ref) => {
|
|
|
51
51
|
(_a = webviewRef.current) === null || _a === void 0 ? void 0 : _a.closeDevTools();
|
|
52
52
|
}, []);
|
|
53
53
|
// TODO extract to hooks
|
|
54
|
-
const
|
|
54
|
+
const jsBridgeHost = useMemo(() => new JsBridgeDesktopHost({
|
|
55
55
|
webviewRef,
|
|
56
56
|
receiveHandler,
|
|
57
57
|
}), [receiveHandler]);
|
|
58
58
|
useImperativeHandle(ref, () => {
|
|
59
59
|
const wrapper = {
|
|
60
60
|
innerRef: webviewRef.current,
|
|
61
|
-
jsBridge,
|
|
61
|
+
jsBridge: jsBridgeHost,
|
|
62
62
|
reload: () => { var _a; return (_a = webviewRef.current) === null || _a === void 0 ? void 0 : _a.reload(); },
|
|
63
63
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
64
64
|
loadURL: (url, options) => {
|
|
@@ -73,7 +73,7 @@ const DesktopWebView = forwardRef((_a, ref) => {
|
|
|
73
73
|
// webviewRef.current?.loadURL(url);
|
|
74
74
|
},
|
|
75
75
|
};
|
|
76
|
-
|
|
76
|
+
jsBridgeHost.webviewWrapper = wrapper;
|
|
77
77
|
return wrapper;
|
|
78
78
|
});
|
|
79
79
|
const initWebviewByRef = useCallback(($ref) => {
|
|
@@ -98,7 +98,7 @@ const DesktopWebView = forwardRef((_a, ref) => {
|
|
|
98
98
|
const uri = new URL(url);
|
|
99
99
|
origin = (uri === null || uri === void 0 ? void 0 : uri.origin) || '';
|
|
100
100
|
// - receive
|
|
101
|
-
|
|
101
|
+
jsBridgeHost.receive(data, { origin });
|
|
102
102
|
}
|
|
103
103
|
else {
|
|
104
104
|
// TODO log error if url is empty
|
|
@@ -111,7 +111,7 @@ const DesktopWebView = forwardRef((_a, ref) => {
|
|
|
111
111
|
return () => {
|
|
112
112
|
webview.removeEventListener('ipc-message', handleMessage);
|
|
113
113
|
};
|
|
114
|
-
}, [
|
|
114
|
+
}, [jsBridgeHost, isIpcReady, isWebviewReady, src]);
|
|
115
115
|
const preloadJsUrl = usePreloadJsUrl();
|
|
116
116
|
if (!preloadJsUrl) {
|
|
117
117
|
return null;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { JsBridgeBase,
|
|
1
|
+
import { JsBridgeBase, } from '@onekeyfe/cross-inpage-provider-core';
|
|
2
2
|
class JsBridgeDesktopHost extends JsBridgeBase {
|
|
3
3
|
constructor(config) {
|
|
4
4
|
super(config);
|
|
@@ -6,16 +6,19 @@ class JsBridgeDesktopHost extends JsBridgeBase {
|
|
|
6
6
|
this.webviewRef = config.webviewRef;
|
|
7
7
|
}
|
|
8
8
|
sendPayload(payload) {
|
|
9
|
-
var _a
|
|
9
|
+
var _a;
|
|
10
10
|
if (this.webviewRef && this.webviewRef.current) {
|
|
11
11
|
const payloadStr = payload;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
if (this.webviewRef.current) {
|
|
13
|
+
// *** executeJavaScript will be blocked by head script loading
|
|
14
|
+
// const inpageReceiveCode = injectedFactory.createCodeJsBridgeReceive(payloadStr);
|
|
15
|
+
// appDebugLogger.webview('executeJavaScript', inpageReceiveCode, payload);
|
|
16
|
+
// this.webviewRef.current?.executeJavaScript?.(inpageReceiveCode);
|
|
17
|
+
// *** use ipcRenderer.on instead
|
|
18
|
+
(_a = this.webviewRef.current) === null || _a === void 0 ? void 0 : _a.send('JsBridgeDesktopHostToInjected', payloadStr);
|
|
16
19
|
}
|
|
17
20
|
else {
|
|
18
|
-
throw new Error('JsBridgeDesktopHost executeJavaScript failed: webview ref not ready yet');
|
|
21
|
+
throw new Error('JsBridgeDesktopHost executeJavaScript failed: webview ref not ready yet.');
|
|
19
22
|
}
|
|
20
23
|
}
|
|
21
24
|
}
|
|
@@ -73,14 +73,14 @@ const DesktopWebView = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
73
73
|
(_a = webviewRef.current) === null || _a === void 0 ? void 0 : _a.closeDevTools();
|
|
74
74
|
}, []);
|
|
75
75
|
// TODO extract to hooks
|
|
76
|
-
const
|
|
76
|
+
const jsBridgeHost = (0, react_1.useMemo)(() => new JsBridgeDesktopHost_1.JsBridgeDesktopHost({
|
|
77
77
|
webviewRef,
|
|
78
78
|
receiveHandler,
|
|
79
79
|
}), [receiveHandler]);
|
|
80
80
|
(0, react_1.useImperativeHandle)(ref, () => {
|
|
81
81
|
const wrapper = {
|
|
82
82
|
innerRef: webviewRef.current,
|
|
83
|
-
jsBridge,
|
|
83
|
+
jsBridge: jsBridgeHost,
|
|
84
84
|
reload: () => { var _a; return (_a = webviewRef.current) === null || _a === void 0 ? void 0 : _a.reload(); },
|
|
85
85
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
86
86
|
loadURL: (url, options) => {
|
|
@@ -95,7 +95,7 @@ const DesktopWebView = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
95
95
|
// webviewRef.current?.loadURL(url);
|
|
96
96
|
},
|
|
97
97
|
};
|
|
98
|
-
|
|
98
|
+
jsBridgeHost.webviewWrapper = wrapper;
|
|
99
99
|
return wrapper;
|
|
100
100
|
});
|
|
101
101
|
const initWebviewByRef = (0, react_1.useCallback)(($ref) => {
|
|
@@ -120,7 +120,7 @@ const DesktopWebView = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
120
120
|
const uri = new URL(url);
|
|
121
121
|
origin = (uri === null || uri === void 0 ? void 0 : uri.origin) || '';
|
|
122
122
|
// - receive
|
|
123
|
-
|
|
123
|
+
jsBridgeHost.receive(data, { origin });
|
|
124
124
|
}
|
|
125
125
|
else {
|
|
126
126
|
// TODO log error if url is empty
|
|
@@ -133,7 +133,7 @@ const DesktopWebView = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
133
133
|
return () => {
|
|
134
134
|
webview.removeEventListener('ipc-message', handleMessage);
|
|
135
135
|
};
|
|
136
|
-
}, [
|
|
136
|
+
}, [jsBridgeHost, isIpcReady, isWebviewReady, src]);
|
|
137
137
|
const preloadJsUrl = usePreloadJsUrl();
|
|
138
138
|
if (!preloadJsUrl) {
|
|
139
139
|
return null;
|
|
@@ -9,16 +9,19 @@ class JsBridgeDesktopHost extends cross_inpage_provider_core_1.JsBridgeBase {
|
|
|
9
9
|
this.webviewRef = config.webviewRef;
|
|
10
10
|
}
|
|
11
11
|
sendPayload(payload) {
|
|
12
|
-
var _a
|
|
12
|
+
var _a;
|
|
13
13
|
if (this.webviewRef && this.webviewRef.current) {
|
|
14
14
|
const payloadStr = payload;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
if (this.webviewRef.current) {
|
|
16
|
+
// *** executeJavaScript will be blocked by head script loading
|
|
17
|
+
// const inpageReceiveCode = injectedFactory.createCodeJsBridgeReceive(payloadStr);
|
|
18
|
+
// appDebugLogger.webview('executeJavaScript', inpageReceiveCode, payload);
|
|
19
|
+
// this.webviewRef.current?.executeJavaScript?.(inpageReceiveCode);
|
|
20
|
+
// *** use ipcRenderer.on instead
|
|
21
|
+
(_a = this.webviewRef.current) === null || _a === void 0 ? void 0 : _a.send('JsBridgeDesktopHostToInjected', payloadStr);
|
|
19
22
|
}
|
|
20
23
|
else {
|
|
21
|
-
throw new Error('JsBridgeDesktopHost executeJavaScript failed: webview ref not ready yet');
|
|
24
|
+
throw new Error('JsBridgeDesktopHost executeJavaScript failed: webview ref not ready yet.');
|
|
22
25
|
}
|
|
23
26
|
}
|
|
24
27
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@onekeyfe/onekey-cross-webview",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.2",
|
|
4
4
|
"keywords": [
|
|
5
5
|
"cross-inpage-provider"
|
|
6
6
|
],
|
|
@@ -34,9 +34,9 @@
|
|
|
34
34
|
"electron": "^17.2.0"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@onekeyfe/cross-inpage-provider-core": "1.1.
|
|
38
|
-
"@onekeyfe/cross-inpage-provider-types": "1.1.
|
|
37
|
+
"@onekeyfe/cross-inpage-provider-core": "1.1.2",
|
|
38
|
+
"@onekeyfe/cross-inpage-provider-types": "1.1.2",
|
|
39
39
|
"react-native-webview": "^11.17.2"
|
|
40
40
|
},
|
|
41
|
-
"gitHead": "
|
|
41
|
+
"gitHead": "08aef327a2fec587de325b1f9dc69caa97a86686"
|
|
42
42
|
}
|