@nitra/cap 1.0.0 → 1.0.1
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 +5 -1
- package/app-update/README.md +23 -0
- package/app-update/index.js +49 -0
- package/index.js +1 -0
- package/package.json +8 -5
package/README.md
CHANGED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Проверка и установка новой версии приложение в маркете
|
|
2
|
+
|
|
3
|
+
## API
|
|
4
|
+
|
|
5
|
+
- [`updateApp(...)`](#updateapp)
|
|
6
|
+
|
|
7
|
+
### updateApp(...)
|
|
8
|
+
|
|
9
|
+
```typescript
|
|
10
|
+
updateApp(isImmediate: boolean | undefined, isMandatory: boolean | undefined ) => Promise<void>
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Проверка и установка новой версии приложение в маркете
|
|
14
|
+
|
|
15
|
+
Для **Android**, через [In-app updates](https://developer.android.com/guide/playcore/in-app-updates)]
|
|
16
|
+
Для **IOS**, открываем App Store
|
|
17
|
+
|
|
18
|
+
| Параметр | Тип | Описание |
|
|
19
|
+
|-------------------|-----------|-------------------------------------------------------------------|
|
|
20
|
+
| **`isImmediate`** | `boolean` | только Android, обновление "в полный" экран, по-умолчанию - false |
|
|
21
|
+
| **`isMandatory`** | `boolean` | только Android, обязательно обновление, по-умолчанию - false |
|
|
22
|
+
|
|
23
|
+
---
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Capacitor } from '@capacitor/core'
|
|
2
|
+
import {
|
|
3
|
+
AppUpdate,
|
|
4
|
+
AppUpdateAvailability,
|
|
5
|
+
FlexibleUpdateInstallStatus,
|
|
6
|
+
AppUpdateResultCode
|
|
7
|
+
} from '@capawesome/capacitor-app-update'
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Проверка наличия обновления, для Android установка обновления, IOS - открытие AppStore
|
|
11
|
+
* @async
|
|
12
|
+
* @function updateApp
|
|
13
|
+
* @param {boolean} isImmediate - только Android, обновление "в полный" экран, по-умолчанию - false
|
|
14
|
+
* @param {boolean} isMandatory - только Android, обязательно обновление, по-умолчанию - false
|
|
15
|
+
*/
|
|
16
|
+
export async function updateApp(isImmediate, isMandatory) {
|
|
17
|
+
if (!Capacitor.isNativePlatform() || !Capacitor.isPluginAvailable('AppUpdate')) {
|
|
18
|
+
return
|
|
19
|
+
}
|
|
20
|
+
const { updateAvailability } = await AppUpdate.getAppUpdateInfo()
|
|
21
|
+
if (updateAvailability !== AppUpdateAvailability.UPDATE_AVAILABLE) {
|
|
22
|
+
return
|
|
23
|
+
}
|
|
24
|
+
if (Capacitor.getPlatform() === 'ios') {
|
|
25
|
+
await AppUpdate.openAppStore()
|
|
26
|
+
return
|
|
27
|
+
}
|
|
28
|
+
if (Capacitor.getPlatform() === 'android') {
|
|
29
|
+
if (isImmediate) {
|
|
30
|
+
const appUpdateResult = await AppUpdate.performImmediateUpdate()
|
|
31
|
+
if (
|
|
32
|
+
isMandatory &&
|
|
33
|
+
(appUpdateResult.code === AppUpdateResultCode.CANCELED ||
|
|
34
|
+
appUpdateResult.code === AppUpdateResultCode.NOT_ALLOWED)
|
|
35
|
+
) {
|
|
36
|
+
await updateApp(isImmediate, isMandatory)
|
|
37
|
+
}
|
|
38
|
+
} else {
|
|
39
|
+
AppUpdate.addListener('onFlexibleUpdateStateChange', flexibleUpdateState => {
|
|
40
|
+
if (flexibleUpdateState.installStatus === FlexibleUpdateInstallStatus.DOWNLOADED) {
|
|
41
|
+
AppUpdate.removeAllListeners()
|
|
42
|
+
AppUpdate.completeFlexibleUpdate()
|
|
43
|
+
}
|
|
44
|
+
})
|
|
45
|
+
await AppUpdate.startFlexibleUpdate()
|
|
46
|
+
}
|
|
47
|
+
return
|
|
48
|
+
}
|
|
49
|
+
}
|
package/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './app-update'
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nitra/cap",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"description": "Nitra capacitor components",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
@@ -8,13 +8,16 @@
|
|
|
8
8
|
},
|
|
9
9
|
"repository": {
|
|
10
10
|
"type": "git",
|
|
11
|
-
"url": "git+https://github.com/nitra/
|
|
11
|
+
"url": "git+https://github.com/nitra/cap.git"
|
|
12
12
|
},
|
|
13
13
|
"author": "v@nitra.ai",
|
|
14
14
|
"license": "ISC",
|
|
15
15
|
"bugs": {
|
|
16
|
-
"url": "https://github.com/nitra/
|
|
16
|
+
"url": "https://github.com/nitra/cap/issues"
|
|
17
17
|
},
|
|
18
|
-
"homepage": "https://github.com/nitra/
|
|
19
|
-
"dependencies": {
|
|
18
|
+
"homepage": "https://github.com/nitra/cap",
|
|
19
|
+
"dependencies": {
|
|
20
|
+
"@capacitor/core": "^6.1.2",
|
|
21
|
+
"@capawesome/capacitor-app-update": "^6.0.0"
|
|
22
|
+
}
|
|
20
23
|
}
|