use-pwa 2.1.0 → 2.2.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 +31 -2
- package/dist/index.d.ts +0 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -73
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -16,6 +16,37 @@ use-pwa is install and update handler for pwa.
|
|
|
16
16
|
|
|
17
17
|
[Example](https://use-pwa.kk-web.link/)
|
|
18
18
|
|
|
19
|
+
### Before Installation
|
|
20
|
+
|
|
21
|
+
| OS | Browser | appinstalled | canInstallprompt | enabledA2hs | enabledPwa | isPwa | userChoice |
|
|
22
|
+
| ------- | ------- | ------------- | ---------------- | ----------- | ---------- | ------- | ----------------- |
|
|
23
|
+
| Mac | Chrome | `false` | `true` | `false` | `true` | `false` | `undefined` |
|
|
24
|
+
| 〃 | Safari | `false` | `false` | `false` | `false` | `false` | `undefined` |
|
|
25
|
+
| 〃 | Firefox | `false` | `false` | `false` | `false` | `false` | `undefined` |
|
|
26
|
+
| Android | Chrome | `false` (\*1) | `true` | `false` | `true` | `false` | `undefined` (\*2) |
|
|
27
|
+
| 〃 | Brave | `false` (\*1) | `true` | `false` | `true` | `false` | `undefined` (\*2) |
|
|
28
|
+
| iOS | Safari | `false` | `false` | `true` | `false` | `false` | `undefined` |
|
|
29
|
+
| 〃 | Brave | `false` | `false` | `true` | `false` | `false` | `undefined` |
|
|
30
|
+
|
|
31
|
+
1. Changes to `true` only immediately after installation.
|
|
32
|
+
2. Changes to `object` only immediately after installation.
|
|
33
|
+
|
|
34
|
+
### After Installation
|
|
35
|
+
|
|
36
|
+
| OS | Browser | appinstalled | canInstallprompt | enabledA2hs | enabledPwa | isPwa | userChoice |
|
|
37
|
+
| ------- | ----------- | ------------- | ---------------- | ----------- | ---------- | ------------ | ----------- |
|
|
38
|
+
| Mac | PWA | `false` (\*1) | `false` (\*1) | `false` | `true` | `true` (\*2) | `undefined` |
|
|
39
|
+
| 〃 | Chrome | `false` | `false` | `false` | `true` | `false` | `undefined` |
|
|
40
|
+
| Android | PWA(Chrome) | `false` | `false` | `false` | `true` | `true` | `undefined` |
|
|
41
|
+
| 〃 | Chrome | `false` | `false` | `false` | `true` | `false` | `undefined` |
|
|
42
|
+
| 〃 | PWA(Brave) | `false` | `false` | `false` | `true` | `true` | `undefined` |
|
|
43
|
+
| 〃 | Brave | `false` | `true` | `false` | `true` | `false` | `undefined` |
|
|
44
|
+
| iOS | PWA | `false` | `false` | `true` | `false` | `true` | `undefined` |
|
|
45
|
+
| 〃 | Safari | `false` | `false` | `true` | `false` | `false` | `undefined` |
|
|
46
|
+
|
|
47
|
+
1. `true` is set only at first startup.
|
|
48
|
+
2. `false` is set only at first startup.
|
|
49
|
+
|
|
19
50
|
## Usage
|
|
20
51
|
|
|
21
52
|
[Example Code](https://github.com/piro0919/use-pwa/blob/master/src/App.tsx)
|
|
@@ -28,9 +59,7 @@ use-pwa is install and update handler for pwa.
|
|
|
28
59
|
| canInstallprompt | Boolean | | [MDN](https://developer.mozilla.org/en-US/docs/Web/API/BeforeInstallPromptEvent) |
|
|
29
60
|
| enabledA2hs | Boolean | | [MDN](https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Add_to_home_screen) |
|
|
30
61
|
| enabledPwa | Boolean | | [MDN](https://developer.mozilla.org/en-US/docs/Web/API/BeforeInstallPromptEvent) |
|
|
31
|
-
| enabledUpdate | Boolean | | [MDN](https://developer.mozilla.org/ja/docs/Web/API/ServiceWorkerRegistration/update) |
|
|
32
62
|
| isLoading | Boolean | | |
|
|
33
63
|
| isPwa | Boolean | | [MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/@media/display-mode) |
|
|
34
64
|
| showInstallPrompt | Function | | [MDN](https://developer.mozilla.org/en-US/docs/Web/API/BeforeInstallPromptEvent/prompt) |
|
|
35
|
-
| unregister | Function | ✓ | [MDN](https://developer.mozilla.org/ja/docs/Web/API/ServiceWorkerRegistration/unregister) |
|
|
36
65
|
| userChoice | Object | ✓ | [MDN](https://developer.mozilla.org/en-US/docs/Web/API/BeforeInstallPromptEvent) |
|
package/dist/index.d.ts
CHANGED
|
@@ -7,11 +7,9 @@ export type PwaData = {
|
|
|
7
7
|
canInstallprompt: boolean;
|
|
8
8
|
enabledA2hs: boolean;
|
|
9
9
|
enabledPwa: boolean;
|
|
10
|
-
enabledUpdate: boolean;
|
|
11
10
|
isLoading: boolean;
|
|
12
11
|
isPwa: boolean;
|
|
13
12
|
showInstallPrompt: () => void;
|
|
14
|
-
unregister?: () => Promise<boolean>;
|
|
15
13
|
userChoice?: UserChoice;
|
|
16
14
|
};
|
|
17
15
|
export default function usePwa(): PwaData;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/hooks/usePwa/index.ts"],"names":[],"mappings":"AASA,KAAK,UAAU,GAAG;IAChB,OAAO,EAAE,UAAU,GAAG,WAAW,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAQF,MAAM,MAAM,OAAO,GAAG;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/hooks/usePwa/index.ts"],"names":[],"mappings":"AASA,KAAK,UAAU,GAAG;IAChB,OAAO,EAAE,UAAU,GAAG,WAAW,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAQF,MAAM,MAAM,OAAO,GAAG;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,MAAM,IAAI,OAAO,CA0JxC"}
|
package/dist/index.js
CHANGED
|
@@ -60,27 +60,13 @@ function usePwa() {
|
|
|
60
60
|
var _b = useBoolean(false), canInstallprompt = _b.value, onCanInstallprompt = _b.setTrue;
|
|
61
61
|
var _c = useBoolean(false), enabledA2hs = _c.value, onEnabledA2hs = _c.setTrue;
|
|
62
62
|
var _d = useBoolean(false), enabledPwa = _d.value, onEnabledPwa = _d.setTrue;
|
|
63
|
-
var _e = useBoolean(false),
|
|
64
|
-
var _f =
|
|
65
|
-
var _g = (0, react_1.useState)(), userChoice = _g[0], setUserChoice = _g[1];
|
|
63
|
+
var _e = useBoolean(false), isPwa = _e.value, onIsPwa = _e.setTrue;
|
|
64
|
+
var _f = (0, react_1.useState)(), userChoice = _f[0], setUserChoice = _f[1];
|
|
66
65
|
var handleAppinstalled = (0, react_1.useCallback)(function () { return onAppinstalled(); }, [onAppinstalled]);
|
|
67
66
|
var handleBeforeinstallprompt = (0, react_1.useCallback)(function (event) {
|
|
68
67
|
beforeinstallprompt.current = event;
|
|
69
68
|
onCanInstallprompt();
|
|
70
69
|
}, [onCanInstallprompt]);
|
|
71
|
-
var _h = (0, react_1.useState)(), registration = _h[0], setRegistration = _h[1];
|
|
72
|
-
var unregister = registration &&
|
|
73
|
-
(function () { return __awaiter(_this, void 0, void 0, function () {
|
|
74
|
-
var result;
|
|
75
|
-
return __generator(this, function (_a) {
|
|
76
|
-
switch (_a.label) {
|
|
77
|
-
case 0: return [4 /*yield*/, registration.unregister()];
|
|
78
|
-
case 1:
|
|
79
|
-
result = _a.sent();
|
|
80
|
-
return [2 /*return*/, result];
|
|
81
|
-
}
|
|
82
|
-
});
|
|
83
|
-
}); });
|
|
84
70
|
var showInstallPrompt = (0, react_1.useCallback)(function () { return __awaiter(_this, void 0, void 0, function () {
|
|
85
71
|
var userChoice;
|
|
86
72
|
return __generator(this, function (_a) {
|
|
@@ -100,14 +86,13 @@ function usePwa() {
|
|
|
100
86
|
}
|
|
101
87
|
});
|
|
102
88
|
}); }, []);
|
|
103
|
-
var
|
|
89
|
+
var _g = (0, react_1.useState)({
|
|
104
90
|
appinstalled: false,
|
|
105
91
|
beforeinstallprompt: false,
|
|
106
92
|
enabledA2hs: false,
|
|
107
93
|
enabledPwa: false,
|
|
108
|
-
enabledUpdate: false,
|
|
109
94
|
isPwa: false,
|
|
110
|
-
}), completed =
|
|
95
|
+
}), completed = _g[0], setCompleted = _g[1];
|
|
111
96
|
var isLoading = (0, react_1.useMemo)(function () { return Object.values(completed).includes(false); }, [completed]);
|
|
112
97
|
(0, react_1.useEffect)(function () {
|
|
113
98
|
window.addEventListener("appinstalled", handleAppinstalled);
|
|
@@ -125,7 +110,9 @@ function usePwa() {
|
|
|
125
110
|
}, [handleBeforeinstallprompt]);
|
|
126
111
|
(0, react_1.useEffect)(function () {
|
|
127
112
|
try {
|
|
128
|
-
|
|
113
|
+
var lownerUserAgent = window.navigator.userAgent.toLowerCase();
|
|
114
|
+
if (!lownerUserAgent.includes("iphone") &&
|
|
115
|
+
!lownerUserAgent.includes("ipad")) {
|
|
129
116
|
return;
|
|
130
117
|
}
|
|
131
118
|
onEnabledA2hs();
|
|
@@ -136,8 +123,7 @@ function usePwa() {
|
|
|
136
123
|
}, [onEnabledA2hs]);
|
|
137
124
|
(0, react_1.useEffect)(function () {
|
|
138
125
|
try {
|
|
139
|
-
if (!("
|
|
140
|
-
!("BeforeInstallPromptEvent" in window)) {
|
|
126
|
+
if (!("BeforeInstallPromptEvent" in window)) {
|
|
141
127
|
return;
|
|
142
128
|
}
|
|
143
129
|
onEnabledPwa();
|
|
@@ -146,54 +132,6 @@ function usePwa() {
|
|
|
146
132
|
setCompleted(function (prevCompleted) { return (__assign(__assign({}, prevCompleted), { enabledPwa: true })); });
|
|
147
133
|
}
|
|
148
134
|
}, [onEnabledPwa]);
|
|
149
|
-
(0, react_1.useEffect)(function () {
|
|
150
|
-
var callback = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
151
|
-
var serviceWorker, registration;
|
|
152
|
-
return __generator(this, function (_a) {
|
|
153
|
-
switch (_a.label) {
|
|
154
|
-
case 0:
|
|
155
|
-
if (!("serviceWorker" in window.navigator)) {
|
|
156
|
-
return [2 /*return*/];
|
|
157
|
-
}
|
|
158
|
-
serviceWorker = window.navigator.serviceWorker;
|
|
159
|
-
return [4 /*yield*/, serviceWorker.getRegistration()];
|
|
160
|
-
case 1:
|
|
161
|
-
registration = _a.sent();
|
|
162
|
-
setRegistration(registration);
|
|
163
|
-
return [2 /*return*/];
|
|
164
|
-
}
|
|
165
|
-
});
|
|
166
|
-
}); };
|
|
167
|
-
callback();
|
|
168
|
-
}, []);
|
|
169
|
-
(0, react_1.useEffect)(function () {
|
|
170
|
-
var callback = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
171
|
-
var _this = this;
|
|
172
|
-
return __generator(this, function (_a) {
|
|
173
|
-
try {
|
|
174
|
-
if (!registration) {
|
|
175
|
-
return [2 /*return*/];
|
|
176
|
-
}
|
|
177
|
-
registration.onupdatefound = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
178
|
-
return __generator(this, function (_a) {
|
|
179
|
-
switch (_a.label) {
|
|
180
|
-
case 0: return [4 /*yield*/, registration.update()];
|
|
181
|
-
case 1:
|
|
182
|
-
_a.sent();
|
|
183
|
-
onEnabledUpdate();
|
|
184
|
-
return [2 /*return*/];
|
|
185
|
-
}
|
|
186
|
-
});
|
|
187
|
-
}); };
|
|
188
|
-
}
|
|
189
|
-
finally {
|
|
190
|
-
setCompleted(function (prevCompleted) { return (__assign(__assign({}, prevCompleted), { enabledUpdate: true })); });
|
|
191
|
-
}
|
|
192
|
-
return [2 /*return*/];
|
|
193
|
-
});
|
|
194
|
-
}); };
|
|
195
|
-
callback();
|
|
196
|
-
}, [onEnabledUpdate, registration]);
|
|
197
135
|
(0, react_1.useEffect)(function () {
|
|
198
136
|
try {
|
|
199
137
|
// Android Trusted Web App
|
|
@@ -208,7 +146,7 @@ function usePwa() {
|
|
|
208
146
|
onIsPwa();
|
|
209
147
|
return;
|
|
210
148
|
}
|
|
211
|
-
// iOS PWA Standalone
|
|
149
|
+
// NOT iOS PWA Standalone
|
|
212
150
|
if (!("standalone" in window.navigator) || !window.navigator.standalone) {
|
|
213
151
|
return;
|
|
214
152
|
}
|
|
@@ -223,10 +161,8 @@ function usePwa() {
|
|
|
223
161
|
canInstallprompt: canInstallprompt,
|
|
224
162
|
enabledA2hs: enabledA2hs,
|
|
225
163
|
enabledPwa: enabledPwa,
|
|
226
|
-
enabledUpdate: enabledUpdate,
|
|
227
164
|
isLoading: isLoading,
|
|
228
165
|
isPwa: isPwa,
|
|
229
|
-
unregister: unregister,
|
|
230
166
|
showInstallPrompt: showInstallPrompt,
|
|
231
167
|
userChoice: userChoice,
|
|
232
168
|
};
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/hooks/usePwa/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAA0E;AAE1E,SAAS,UAAU,CAAC,YAAqB;IACjC,IAAA,KAAoB,IAAA,gBAAQ,EAAC,YAAY,CAAC,EAAzC,KAAK,QAAA,EAAE,QAAQ,QAA0B,CAAC;IACjD,IAAM,OAAO,GAAG,IAAA,mBAAW,EAAC,cAAM,OAAA,QAAQ,CAAC,IAAI,CAAC,EAAd,CAAc,EAAE,EAAE,CAAC,CAAC;IAEtD,OAAO,EAAE,KAAK,OAAA,EAAE,OAAO,SAAA,EAAE,CAAC;AAC5B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/hooks/usePwa/index.ts"],"names":[],"mappings":"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"}
|