@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 CHANGED
@@ -1 +1,5 @@
1
- # vue3 components
1
+ # Nitra Cap components
2
+
3
+ | Папка | Описание |
4
+ |-----------------------------|--------------------------------------------------------|
5
+ | [app-update](./app-apdate/) | Проверка и установка новой версии приложения в маркете |
@@ -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.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/components.git"
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/components/issues"
16
+ "url": "https://github.com/nitra/cap/issues"
17
17
  },
18
- "homepage": "https://github.com/nitra/components",
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
  }