@capacitor/device 6.0.2 → 7.0.0-alpha.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/CapacitorDevice.podspec +1 -1
- package/Package.swift +2 -2
- package/README.md +0 -37
- package/android/build.gradle +9 -9
- package/android/src/main/java/com/capacitorjs/plugins/device/Device.java +0 -22
- package/android/src/main/java/com/capacitorjs/plugins/device/DevicePlugin.java +0 -4
- package/dist/docs.json +0 -56
- package/dist/esm/definitions.d.ts +0 -44
- package/dist/esm/definitions.js.map +1 -1
- package/dist/plugin.cjs.js +0 -2
- package/dist/plugin.cjs.js.map +1 -1
- package/dist/plugin.js +0 -2
- package/dist/plugin.js.map +1 -1
- package/ios/Sources/DevicePlugin/Device.swift +0 -42
- package/ios/Sources/DevicePlugin/DevicePlugin.swift +0 -7
- package/package.json +10 -10
package/CapacitorDevice.podspec
CHANGED
|
@@ -11,7 +11,7 @@ Pod::Spec.new do |s|
|
|
|
11
11
|
s.author = package['author']
|
|
12
12
|
s.source = { :git => 'https://github.com/ionic-team/capacitor-plugins.git', :tag => package['name'] + '@' + package['version'] }
|
|
13
13
|
s.source_files = 'ios/Sources/**/*.{swift,h,m,c,cc,mm,cpp}', 'device/ios/Sources/**/*.{swift,h,m,c,cc,mm,cpp}'
|
|
14
|
-
s.ios.deployment_target
|
|
14
|
+
s.ios.deployment_target = '14.0'
|
|
15
15
|
s.dependency 'Capacitor'
|
|
16
16
|
s.swift_version = '5.1'
|
|
17
17
|
end
|
package/Package.swift
CHANGED
|
@@ -3,14 +3,14 @@ import PackageDescription
|
|
|
3
3
|
|
|
4
4
|
let package = Package(
|
|
5
5
|
name: "CapacitorDevice",
|
|
6
|
-
platforms: [.iOS(.
|
|
6
|
+
platforms: [.iOS(.v14)],
|
|
7
7
|
products: [
|
|
8
8
|
.library(
|
|
9
9
|
name: "CapacitorDevice",
|
|
10
10
|
targets: ["DevicePlugin"])
|
|
11
11
|
],
|
|
12
12
|
dependencies: [
|
|
13
|
-
.package(url: "https://github.com/ionic-team/capacitor-swift-pm.git",
|
|
13
|
+
.package(url: "https://github.com/ionic-team/capacitor-swift-pm.git", branch: "main")
|
|
14
14
|
],
|
|
15
15
|
targets: [
|
|
16
16
|
.target(
|
package/README.md
CHANGED
|
@@ -9,39 +9,6 @@ npm install @capacitor/device
|
|
|
9
9
|
npx cap sync
|
|
10
10
|
```
|
|
11
11
|
|
|
12
|
-
## Apple Privacy Manifest Requirements
|
|
13
|
-
|
|
14
|
-
Apple mandates that app developers now specify approved reasons for API usage to enhance user privacy. By May 1st, 2024, it's required to include these reasons when submitting apps to the App Store Connect.
|
|
15
|
-
|
|
16
|
-
When using this specific plugin in your app, you must create a `PrivacyInfo.xcprivacy` file in `/ios/App` or use the VS Code Extension to generate it, specifying the usage reasons.
|
|
17
|
-
|
|
18
|
-
For detailed steps on how to do this, please see the [Capacitor Docs](https://capacitorjs.com/docs/ios/privacy-manifest).
|
|
19
|
-
|
|
20
|
-
**For this plugin, the required dictionary key is [NSPrivacyAccessedAPICategoryDiskSpace](https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api#4278397) and the recommended reason is [85F4.1](https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api#4278397).**
|
|
21
|
-
|
|
22
|
-
### Example PrivacyInfo.xcprivacy
|
|
23
|
-
|
|
24
|
-
```xml
|
|
25
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
26
|
-
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
27
|
-
<plist version="1.0">
|
|
28
|
-
<dict>
|
|
29
|
-
<key>NSPrivacyAccessedAPITypes</key>
|
|
30
|
-
<array>
|
|
31
|
-
<!-- Add this dict entry to the array if the PrivacyInfo file already exists -->
|
|
32
|
-
<dict>
|
|
33
|
-
<key>NSPrivacyAccessedAPIType</key>
|
|
34
|
-
<string>NSPrivacyAccessedAPICategoryDiskSpace</string>
|
|
35
|
-
<key>NSPrivacyAccessedAPITypeReasons</key>
|
|
36
|
-
<array>
|
|
37
|
-
<string>85F4.1</string>
|
|
38
|
-
</array>
|
|
39
|
-
</dict>
|
|
40
|
-
</array>
|
|
41
|
-
</dict>
|
|
42
|
-
</plist>
|
|
43
|
-
```
|
|
44
|
-
|
|
45
12
|
## Example Plugin Usage
|
|
46
13
|
|
|
47
14
|
```typescript
|
|
@@ -176,10 +143,6 @@ Get the device's current language locale tag.
|
|
|
176
143
|
| **`manufacturer`** | <code>string</code> | The manufacturer of the device. | 1.0.0 |
|
|
177
144
|
| **`isVirtual`** | <code>boolean</code> | Whether the app is running in a simulator/emulator. | 1.0.0 |
|
|
178
145
|
| **`memUsed`** | <code>number</code> | Approximate memory used by the current app, in bytes. Divide by 1048576 to get the number of MBs used. | 1.0.0 |
|
|
179
|
-
| **`diskFree`** | <code>number</code> | How much free disk space is available on the normal data storage path for the os, in bytes. On Android it returns the free disk space on the "system" partition holding the core Android OS. On iOS this value is not accurate. | 1.0.0 |
|
|
180
|
-
| **`diskTotal`** | <code>number</code> | The total size of the normal data storage path for the OS, in bytes. On Android it returns the disk space on the "system" partition holding the core Android OS. | 1.0.0 |
|
|
181
|
-
| **`realDiskFree`** | <code>number</code> | How much free disk space is available on the normal data storage, in bytes. | 1.1.0 |
|
|
182
|
-
| **`realDiskTotal`** | <code>number</code> | The total size of the normal data storage path, in bytes. | 1.1.0 |
|
|
183
146
|
| **`webViewVersion`** | <code>string</code> | The web view browser version | 1.0.0 |
|
|
184
147
|
|
|
185
148
|
|
package/android/build.gradle
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
ext {
|
|
2
2
|
capacitorVersion = System.getenv('CAPACITOR_VERSION')
|
|
3
3
|
junitVersion = project.hasProperty('junitVersion') ? rootProject.ext.junitVersion : '4.13.2'
|
|
4
|
-
androidxAppCompatVersion = project.hasProperty('androidxAppCompatVersion') ? rootProject.ext.androidxAppCompatVersion : '1.
|
|
5
|
-
androidxJunitVersion = project.hasProperty('androidxJunitVersion') ? rootProject.ext.androidxJunitVersion : '1.1
|
|
6
|
-
androidxEspressoCoreVersion = project.hasProperty('androidxEspressoCoreVersion') ? rootProject.ext.androidxEspressoCoreVersion : '3.
|
|
4
|
+
androidxAppCompatVersion = project.hasProperty('androidxAppCompatVersion') ? rootProject.ext.androidxAppCompatVersion : '1.7.0'
|
|
5
|
+
androidxJunitVersion = project.hasProperty('androidxJunitVersion') ? rootProject.ext.androidxJunitVersion : '1.2.1'
|
|
6
|
+
androidxEspressoCoreVersion = project.hasProperty('androidxEspressoCoreVersion') ? rootProject.ext.androidxEspressoCoreVersion : '3.6.1'
|
|
7
7
|
}
|
|
8
8
|
|
|
9
9
|
buildscript {
|
|
@@ -15,7 +15,7 @@ buildscript {
|
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
dependencies {
|
|
18
|
-
classpath 'com.android.tools.build:gradle:8.2
|
|
18
|
+
classpath 'com.android.tools.build:gradle:8.7.2'
|
|
19
19
|
if (System.getenv("CAP_PLUGIN_PUBLISH") == "true") {
|
|
20
20
|
classpath 'io.github.gradle-nexus:publish-plugin:1.3.0'
|
|
21
21
|
}
|
|
@@ -31,10 +31,10 @@ if (System.getenv("CAP_PLUGIN_PUBLISH") == "true") {
|
|
|
31
31
|
|
|
32
32
|
android {
|
|
33
33
|
namespace "com.capacitorjs.plugins.device"
|
|
34
|
-
compileSdk project.hasProperty('compileSdkVersion') ? rootProject.ext.compileSdkVersion :
|
|
34
|
+
compileSdk project.hasProperty('compileSdkVersion') ? rootProject.ext.compileSdkVersion : 35
|
|
35
35
|
defaultConfig {
|
|
36
|
-
minSdkVersion project.hasProperty('minSdkVersion') ? rootProject.ext.minSdkVersion :
|
|
37
|
-
targetSdkVersion project.hasProperty('targetSdkVersion') ? rootProject.ext.targetSdkVersion :
|
|
36
|
+
minSdkVersion project.hasProperty('minSdkVersion') ? rootProject.ext.minSdkVersion : 23
|
|
37
|
+
targetSdkVersion project.hasProperty('targetSdkVersion') ? rootProject.ext.targetSdkVersion : 35
|
|
38
38
|
versionCode 1
|
|
39
39
|
versionName "1.0"
|
|
40
40
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
|
@@ -49,8 +49,8 @@ android {
|
|
|
49
49
|
abortOnError false
|
|
50
50
|
}
|
|
51
51
|
compileOptions {
|
|
52
|
-
sourceCompatibility JavaVersion.
|
|
53
|
-
targetCompatibility JavaVersion.
|
|
52
|
+
sourceCompatibility JavaVersion.VERSION_21
|
|
53
|
+
targetCompatibility JavaVersion.VERSION_21
|
|
54
54
|
}
|
|
55
55
|
publishing {
|
|
56
56
|
singleVariant("release")
|
|
@@ -7,8 +7,6 @@ import android.content.pm.PackageInfo;
|
|
|
7
7
|
import android.content.pm.PackageManager;
|
|
8
8
|
import android.os.BatteryManager;
|
|
9
9
|
import android.os.Build;
|
|
10
|
-
import android.os.Environment;
|
|
11
|
-
import android.os.StatFs;
|
|
12
10
|
import android.provider.Settings;
|
|
13
11
|
import android.webkit.WebView;
|
|
14
12
|
|
|
@@ -26,26 +24,6 @@ public class Device {
|
|
|
26
24
|
return usedMem;
|
|
27
25
|
}
|
|
28
26
|
|
|
29
|
-
public long getDiskFree() {
|
|
30
|
-
StatFs statFs = new StatFs(Environment.getRootDirectory().getAbsolutePath());
|
|
31
|
-
return statFs.getAvailableBlocksLong() * statFs.getBlockSizeLong();
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
public long getDiskTotal() {
|
|
35
|
-
StatFs statFs = new StatFs(Environment.getRootDirectory().getAbsolutePath());
|
|
36
|
-
return statFs.getBlockCountLong() * statFs.getBlockSizeLong();
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
public long getRealDiskFree() {
|
|
40
|
-
StatFs statFs = new StatFs(Environment.getDataDirectory().getAbsolutePath());
|
|
41
|
-
return statFs.getAvailableBlocksLong() * statFs.getBlockSizeLong();
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
public long getRealDiskTotal() {
|
|
45
|
-
StatFs statFs = new StatFs(Environment.getDataDirectory().getAbsolutePath());
|
|
46
|
-
return statFs.getBlockCountLong() * statFs.getBlockSizeLong();
|
|
47
|
-
}
|
|
48
|
-
|
|
49
27
|
public String getPlatform() {
|
|
50
28
|
return "android";
|
|
51
29
|
}
|
|
@@ -32,10 +32,6 @@ public class DevicePlugin extends Plugin {
|
|
|
32
32
|
JSObject r = new JSObject();
|
|
33
33
|
|
|
34
34
|
r.put("memUsed", implementation.getMemUsed());
|
|
35
|
-
r.put("diskFree", implementation.getDiskFree());
|
|
36
|
-
r.put("diskTotal", implementation.getDiskTotal());
|
|
37
|
-
r.put("realDiskFree", implementation.getRealDiskFree());
|
|
38
|
-
r.put("realDiskTotal", implementation.getRealDiskTotal());
|
|
39
35
|
r.put("model", android.os.Build.MODEL);
|
|
40
36
|
r.put("operatingSystem", "android");
|
|
41
37
|
r.put("osVersion", android.os.Build.VERSION.RELEASE);
|
package/dist/docs.json
CHANGED
|
@@ -244,62 +244,6 @@
|
|
|
244
244
|
"complexTypes": [],
|
|
245
245
|
"type": "number | undefined"
|
|
246
246
|
},
|
|
247
|
-
{
|
|
248
|
-
"name": "diskFree",
|
|
249
|
-
"tags": [
|
|
250
|
-
{
|
|
251
|
-
"text": "Use `realDiskFree`.",
|
|
252
|
-
"name": "deprecated"
|
|
253
|
-
},
|
|
254
|
-
{
|
|
255
|
-
"text": "1.0.0",
|
|
256
|
-
"name": "since"
|
|
257
|
-
}
|
|
258
|
-
],
|
|
259
|
-
"docs": "How much free disk space is available on the normal data storage\npath for the os, in bytes.\n\nOn Android it returns the free disk space on the \"system\"\npartition holding the core Android OS.\nOn iOS this value is not accurate.",
|
|
260
|
-
"complexTypes": [],
|
|
261
|
-
"type": "number | undefined"
|
|
262
|
-
},
|
|
263
|
-
{
|
|
264
|
-
"name": "diskTotal",
|
|
265
|
-
"tags": [
|
|
266
|
-
{
|
|
267
|
-
"text": "Use `realDiskTotal`.",
|
|
268
|
-
"name": "deprecated"
|
|
269
|
-
},
|
|
270
|
-
{
|
|
271
|
-
"text": "1.0.0",
|
|
272
|
-
"name": "since"
|
|
273
|
-
}
|
|
274
|
-
],
|
|
275
|
-
"docs": "The total size of the normal data storage path for the OS, in bytes.\n\nOn Android it returns the disk space on the \"system\"\npartition holding the core Android OS.",
|
|
276
|
-
"complexTypes": [],
|
|
277
|
-
"type": "number | undefined"
|
|
278
|
-
},
|
|
279
|
-
{
|
|
280
|
-
"name": "realDiskFree",
|
|
281
|
-
"tags": [
|
|
282
|
-
{
|
|
283
|
-
"text": "1.1.0",
|
|
284
|
-
"name": "since"
|
|
285
|
-
}
|
|
286
|
-
],
|
|
287
|
-
"docs": "How much free disk space is available on the normal data storage, in bytes.",
|
|
288
|
-
"complexTypes": [],
|
|
289
|
-
"type": "number | undefined"
|
|
290
|
-
},
|
|
291
|
-
{
|
|
292
|
-
"name": "realDiskTotal",
|
|
293
|
-
"tags": [
|
|
294
|
-
{
|
|
295
|
-
"text": "1.1.0",
|
|
296
|
-
"name": "since"
|
|
297
|
-
}
|
|
298
|
-
],
|
|
299
|
-
"docs": "The total size of the normal data storage path, in bytes.",
|
|
300
|
-
"complexTypes": [],
|
|
301
|
-
"type": "number | undefined"
|
|
302
|
-
},
|
|
303
247
|
{
|
|
304
248
|
"name": "webViewVersion",
|
|
305
249
|
"tags": [
|
|
@@ -87,40 +87,6 @@ export interface DeviceInfo {
|
|
|
87
87
|
* @since 1.0.0
|
|
88
88
|
*/
|
|
89
89
|
memUsed?: number;
|
|
90
|
-
/**
|
|
91
|
-
* How much free disk space is available on the normal data storage
|
|
92
|
-
* path for the os, in bytes.
|
|
93
|
-
*
|
|
94
|
-
* On Android it returns the free disk space on the "system"
|
|
95
|
-
* partition holding the core Android OS.
|
|
96
|
-
* On iOS this value is not accurate.
|
|
97
|
-
*
|
|
98
|
-
* @deprecated Use `realDiskFree`.
|
|
99
|
-
* @since 1.0.0
|
|
100
|
-
*/
|
|
101
|
-
diskFree?: number;
|
|
102
|
-
/**
|
|
103
|
-
* The total size of the normal data storage path for the OS, in bytes.
|
|
104
|
-
*
|
|
105
|
-
* On Android it returns the disk space on the "system"
|
|
106
|
-
* partition holding the core Android OS.
|
|
107
|
-
*
|
|
108
|
-
* @deprecated Use `realDiskTotal`.
|
|
109
|
-
* @since 1.0.0
|
|
110
|
-
*/
|
|
111
|
-
diskTotal?: number;
|
|
112
|
-
/**
|
|
113
|
-
* How much free disk space is available on the normal data storage, in bytes.
|
|
114
|
-
*
|
|
115
|
-
* @since 1.1.0
|
|
116
|
-
*/
|
|
117
|
-
realDiskFree?: number;
|
|
118
|
-
/**
|
|
119
|
-
* The total size of the normal data storage path, in bytes.
|
|
120
|
-
*
|
|
121
|
-
* @since 1.1.0
|
|
122
|
-
*/
|
|
123
|
-
realDiskTotal?: number;
|
|
124
90
|
/**
|
|
125
91
|
* The web view browser version
|
|
126
92
|
*
|
|
@@ -190,13 +156,3 @@ export interface DevicePlugin {
|
|
|
190
156
|
*/
|
|
191
157
|
getLanguageTag(): Promise<LanguageTag>;
|
|
192
158
|
}
|
|
193
|
-
/**
|
|
194
|
-
* @deprecated Use `BatteryInfo`.
|
|
195
|
-
* @since 1.0.0
|
|
196
|
-
*/
|
|
197
|
-
export declare type DeviceBatteryInfo = BatteryInfo;
|
|
198
|
-
/**
|
|
199
|
-
* @deprecated Use `GetLanguageCodeResult`.
|
|
200
|
-
* @since 1.0.0
|
|
201
|
-
*/
|
|
202
|
-
export declare type DeviceLanguageCodeResult = GetLanguageCodeResult;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/definitions.ts"],"names":[],"mappings":"","sourcesContent":["export type OperatingSystem = 'ios' | 'android' | 'windows' | 'mac' | 'unknown';\n\nexport interface DeviceId {\n /**\n * The identifier of the device as available to the app. This identifier may change\n * on modern mobile platforms that only allow per-app install ids.\n *\n * On iOS, the identifier is a UUID that uniquely identifies a device to the app’s vendor ([read more](https://developer.apple.com/documentation/uikit/uidevice/1620059-identifierforvendor)).\n *\n * on Android 8+, __the identifier is a 64-bit number (expressed as a hexadecimal string)__, unique to each combination of app-signing key, user, and device ([read more](https://developer.android.com/reference/android/provider/Settings.Secure#ANDROID_ID)).\n *\n * On web, a random identifier is generated and stored on localStorage for subsequent calls.\n * If localStorage is not available a new random identifier will be generated on every call.\n *\n * @since 1.0.0\n */\n identifier: string;\n}\n\nexport interface DeviceInfo {\n /**\n * The name of the device. For example, \"John's iPhone\".\n *\n * This is only supported on iOS and Android 7.1 or above.\n *\n * On iOS 16+ this will return a generic device name without the appropriate [entitlements](https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_developer_device-information_user-assigned-device-name).\n *\n * @since 1.0.0\n */\n name?: string;\n\n /**\n * The device model. For example, \"iPhone13,4\".\n *\n * @since 1.0.0\n */\n model: string;\n\n /**\n * The device platform (lowercase).\n *\n * @since 1.0.0\n */\n platform: 'ios' | 'android' | 'web';\n\n /**\n * The operating system of the device.\n *\n * @since 1.0.0\n */\n operatingSystem: OperatingSystem;\n\n /**\n * The version of the device OS.\n *\n * @since 1.0.0\n */\n osVersion: string;\n\n /**\n * The iOS version number.\n *\n * Only available on iOS.\n *\n * Multi-part version numbers are crushed down into an integer padded to two-digits, ex: `\"16.3.1\"` -> `160301`\n *\n * @since 5.0.0\n */\n iOSVersion?: number;\n\n /**\n * The Android SDK version number.\n *\n * Only available on Android.\n *\n * @since 5.0.0\n */\n androidSDKVersion?: number;\n\n /**\n * The manufacturer of the device.\n *\n * @since 1.0.0\n */\n manufacturer: string;\n\n /**\n * Whether the app is running in a simulator/emulator.\n *\n * @since 1.0.0\n */\n isVirtual: boolean;\n\n /**\n * Approximate memory used by the current app, in bytes. Divide by\n * 1048576 to get the number of MBs used.\n *\n * @since 1.0.0\n */\n memUsed?: number;\n\n /**\n *
|
|
1
|
+
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/definitions.ts"],"names":[],"mappings":"","sourcesContent":["export type OperatingSystem = 'ios' | 'android' | 'windows' | 'mac' | 'unknown';\n\nexport interface DeviceId {\n /**\n * The identifier of the device as available to the app. This identifier may change\n * on modern mobile platforms that only allow per-app install ids.\n *\n * On iOS, the identifier is a UUID that uniquely identifies a device to the app’s vendor ([read more](https://developer.apple.com/documentation/uikit/uidevice/1620059-identifierforvendor)).\n *\n * on Android 8+, __the identifier is a 64-bit number (expressed as a hexadecimal string)__, unique to each combination of app-signing key, user, and device ([read more](https://developer.android.com/reference/android/provider/Settings.Secure#ANDROID_ID)).\n *\n * On web, a random identifier is generated and stored on localStorage for subsequent calls.\n * If localStorage is not available a new random identifier will be generated on every call.\n *\n * @since 1.0.0\n */\n identifier: string;\n}\n\nexport interface DeviceInfo {\n /**\n * The name of the device. For example, \"John's iPhone\".\n *\n * This is only supported on iOS and Android 7.1 or above.\n *\n * On iOS 16+ this will return a generic device name without the appropriate [entitlements](https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_developer_device-information_user-assigned-device-name).\n *\n * @since 1.0.0\n */\n name?: string;\n\n /**\n * The device model. For example, \"iPhone13,4\".\n *\n * @since 1.0.0\n */\n model: string;\n\n /**\n * The device platform (lowercase).\n *\n * @since 1.0.0\n */\n platform: 'ios' | 'android' | 'web';\n\n /**\n * The operating system of the device.\n *\n * @since 1.0.0\n */\n operatingSystem: OperatingSystem;\n\n /**\n * The version of the device OS.\n *\n * @since 1.0.0\n */\n osVersion: string;\n\n /**\n * The iOS version number.\n *\n * Only available on iOS.\n *\n * Multi-part version numbers are crushed down into an integer padded to two-digits, ex: `\"16.3.1\"` -> `160301`\n *\n * @since 5.0.0\n */\n iOSVersion?: number;\n\n /**\n * The Android SDK version number.\n *\n * Only available on Android.\n *\n * @since 5.0.0\n */\n androidSDKVersion?: number;\n\n /**\n * The manufacturer of the device.\n *\n * @since 1.0.0\n */\n manufacturer: string;\n\n /**\n * Whether the app is running in a simulator/emulator.\n *\n * @since 1.0.0\n */\n isVirtual: boolean;\n\n /**\n * Approximate memory used by the current app, in bytes. Divide by\n * 1048576 to get the number of MBs used.\n *\n * @since 1.0.0\n */\n memUsed?: number;\n\n /**\n * The web view browser version\n *\n * @since 1.0.0\n */\n webViewVersion: string;\n}\n\nexport interface BatteryInfo {\n /**\n * A percentage (0 to 1) indicating how much the battery is charged.\n *\n * @since 1.0.0\n */\n batteryLevel?: number;\n\n /**\n * Whether the device is charging.\n *\n * @since 1.0.0\n */\n isCharging?: boolean;\n}\n\nexport interface GetLanguageCodeResult {\n /**\n * Two character language code.\n *\n * @since 1.0.0\n */\n value: string;\n}\n\nexport interface LanguageTag {\n /**\n * Returns a well-formed IETF BCP 47 language tag.\n *\n * @since 4.0.0\n */\n value: string;\n}\n\nexport interface DevicePlugin {\n /**\n * Return an unique identifier for the device.\n *\n * @since 1.0.0\n */\n getId(): Promise<DeviceId>;\n\n /**\n * Return information about the underlying device/os/platform.\n *\n * @since 1.0.0\n */\n getInfo(): Promise<DeviceInfo>;\n\n /**\n * Return information about the battery.\n *\n * @since 1.0.0\n */\n getBatteryInfo(): Promise<BatteryInfo>;\n\n /**\n * Get the device's current language locale code.\n *\n * @since 1.0.0\n */\n getLanguageCode(): Promise<GetLanguageCodeResult>;\n\n /**\n * Get the device's current language locale tag.\n *\n * @since 4.0.0\n */\n getLanguageTag(): Promise<LanguageTag>;\n}\n"]}
|
package/dist/plugin.cjs.js
CHANGED
package/dist/plugin.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.cjs.js","sources":["esm/index.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from '@capacitor/core';\nconst Device = registerPlugin('Device', {\n web: () => import('./web').then(m => new m.DeviceWeb()),\n});\nexport * from './definitions';\nexport { Device };\n//# sourceMappingURL=index.js.map","import { WebPlugin } from '@capacitor/core';\nexport class DeviceWeb extends WebPlugin {\n async getId() {\n return {\n identifier: this.getUid(),\n };\n }\n async getInfo() {\n if (typeof navigator === 'undefined' || !navigator.userAgent) {\n throw this.unavailable('Device API not available in this browser');\n }\n const ua = navigator.userAgent;\n const uaFields = this.parseUa(ua);\n return {\n model: uaFields.model,\n platform: 'web',\n operatingSystem: uaFields.operatingSystem,\n osVersion: uaFields.osVersion,\n manufacturer: navigator.vendor,\n isVirtual: false,\n webViewVersion: uaFields.browserVersion,\n };\n }\n async getBatteryInfo() {\n if (typeof navigator === 'undefined' || !navigator.getBattery) {\n throw this.unavailable('Device API not available in this browser');\n }\n let battery = {};\n try {\n battery = await navigator.getBattery();\n }\n catch (e) {\n // Let it fail, we don't care\n }\n return {\n batteryLevel: battery.level,\n isCharging: battery.charging,\n };\n }\n async getLanguageCode() {\n return {\n value: navigator.language.split('-')[0].toLowerCase(),\n };\n }\n async getLanguageTag() {\n return {\n value: navigator.language,\n };\n }\n parseUa(ua) {\n const uaFields = {};\n const start = ua.indexOf('(') + 1;\n let end = ua.indexOf(') AppleWebKit');\n if (ua.indexOf(') Gecko') !== -1) {\n end = ua.indexOf(') Gecko');\n }\n const fields = ua.substring(start, end);\n if (ua.indexOf('Android') !== -1) {\n const tmpFields = fields.replace('; wv', '').split('; ').pop();\n if (tmpFields) {\n uaFields.model = tmpFields.split(' Build')[0];\n }\n uaFields.osVersion = fields.split('; ')[1];\n }\n else {\n uaFields.model = fields.split('; ')[0];\n if (typeof navigator !== 'undefined' && navigator.oscpu) {\n uaFields.osVersion = navigator.oscpu;\n }\n else {\n if (ua.indexOf('Windows') !== -1) {\n uaFields.osVersion = fields;\n }\n else {\n const tmpFields = fields.split('; ').pop();\n if (tmpFields) {\n const lastParts = tmpFields\n .replace(' like Mac OS X', '')\n .split(' ');\n uaFields.osVersion = lastParts[lastParts.length - 1].replace(/_/g, '.');\n }\n }\n }\n }\n if (/android/i.test(ua)) {\n uaFields.operatingSystem = 'android';\n }\n else if (/iPad|iPhone|iPod/.test(ua) && !window.MSStream) {\n uaFields.operatingSystem = 'ios';\n }\n else if (/Win/.test(ua)) {\n uaFields.operatingSystem = 'windows';\n }\n else if (/Mac/i.test(ua)) {\n uaFields.operatingSystem = 'mac';\n }\n else {\n uaFields.operatingSystem = 'unknown';\n }\n // Check for browsers based on non-standard javascript apis, only not user agent\n const isSafari = !!window.ApplePaySession;\n const isChrome = !!window.chrome;\n const isFirefox = /Firefox/.test(ua);\n const isEdge = /Edg/.test(ua);\n const isFirefoxIOS = /FxiOS/.test(ua);\n const isChromeIOS = /CriOS/.test(ua);\n const isEdgeIOS = /EdgiOS/.test(ua);\n // FF and Edge User Agents both end with \"/MAJOR.MINOR\"\n if (isSafari ||\n (isChrome && !isEdge) ||\n isFirefoxIOS ||\n isChromeIOS ||\n isEdgeIOS) {\n // Safari version comes as \"... Version/MAJOR.MINOR ...\"\n // Chrome version comes as \"... Chrome/MAJOR.MINOR ...\"\n // FirefoxIOS version comes as \"... FxiOS/MAJOR.MINOR ...\"\n // ChromeIOS version comes as \"... CriOS/MAJOR.MINOR ...\"\n let searchWord;\n if (isFirefoxIOS) {\n searchWord = 'FxiOS';\n }\n else if (isChromeIOS) {\n searchWord = 'CriOS';\n }\n else if (isEdgeIOS) {\n searchWord = 'EdgiOS';\n }\n else if (isSafari) {\n searchWord = 'Version';\n }\n else {\n searchWord = 'Chrome';\n }\n const words = ua.split(' ');\n for (const word of words) {\n if (word.includes(searchWord)) {\n const version = word.split('/')[1];\n uaFields.browserVersion = version;\n }\n }\n }\n else if (isFirefox || isEdge) {\n const reverseUA = ua.split('').reverse().join('');\n const reverseVersion = reverseUA.split('/')[0];\n const version = reverseVersion.split('').reverse().join('');\n uaFields.browserVersion = version;\n }\n return uaFields;\n }\n getUid() {\n if (typeof window !== 'undefined' && window.localStorage) {\n let uid = window.localStorage.getItem('_capuid');\n if (uid) {\n return uid;\n }\n uid = this.uuid4();\n window.localStorage.setItem('_capuid', uid);\n return uid;\n }\n return this.uuid4();\n }\n uuid4() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n const r = (Math.random() * 16) | 0, v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plugin.cjs.js","sources":["esm/index.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from '@capacitor/core';\nconst Device = registerPlugin('Device', {\n web: () => import('./web').then(m => new m.DeviceWeb()),\n});\nexport * from './definitions';\nexport { Device };\n//# sourceMappingURL=index.js.map","import { WebPlugin } from '@capacitor/core';\nexport class DeviceWeb extends WebPlugin {\n async getId() {\n return {\n identifier: this.getUid(),\n };\n }\n async getInfo() {\n if (typeof navigator === 'undefined' || !navigator.userAgent) {\n throw this.unavailable('Device API not available in this browser');\n }\n const ua = navigator.userAgent;\n const uaFields = this.parseUa(ua);\n return {\n model: uaFields.model,\n platform: 'web',\n operatingSystem: uaFields.operatingSystem,\n osVersion: uaFields.osVersion,\n manufacturer: navigator.vendor,\n isVirtual: false,\n webViewVersion: uaFields.browserVersion,\n };\n }\n async getBatteryInfo() {\n if (typeof navigator === 'undefined' || !navigator.getBattery) {\n throw this.unavailable('Device API not available in this browser');\n }\n let battery = {};\n try {\n battery = await navigator.getBattery();\n }\n catch (e) {\n // Let it fail, we don't care\n }\n return {\n batteryLevel: battery.level,\n isCharging: battery.charging,\n };\n }\n async getLanguageCode() {\n return {\n value: navigator.language.split('-')[0].toLowerCase(),\n };\n }\n async getLanguageTag() {\n return {\n value: navigator.language,\n };\n }\n parseUa(ua) {\n const uaFields = {};\n const start = ua.indexOf('(') + 1;\n let end = ua.indexOf(') AppleWebKit');\n if (ua.indexOf(') Gecko') !== -1) {\n end = ua.indexOf(') Gecko');\n }\n const fields = ua.substring(start, end);\n if (ua.indexOf('Android') !== -1) {\n const tmpFields = fields.replace('; wv', '').split('; ').pop();\n if (tmpFields) {\n uaFields.model = tmpFields.split(' Build')[0];\n }\n uaFields.osVersion = fields.split('; ')[1];\n }\n else {\n uaFields.model = fields.split('; ')[0];\n if (typeof navigator !== 'undefined' && navigator.oscpu) {\n uaFields.osVersion = navigator.oscpu;\n }\n else {\n if (ua.indexOf('Windows') !== -1) {\n uaFields.osVersion = fields;\n }\n else {\n const tmpFields = fields.split('; ').pop();\n if (tmpFields) {\n const lastParts = tmpFields\n .replace(' like Mac OS X', '')\n .split(' ');\n uaFields.osVersion = lastParts[lastParts.length - 1].replace(/_/g, '.');\n }\n }\n }\n }\n if (/android/i.test(ua)) {\n uaFields.operatingSystem = 'android';\n }\n else if (/iPad|iPhone|iPod/.test(ua) && !window.MSStream) {\n uaFields.operatingSystem = 'ios';\n }\n else if (/Win/.test(ua)) {\n uaFields.operatingSystem = 'windows';\n }\n else if (/Mac/i.test(ua)) {\n uaFields.operatingSystem = 'mac';\n }\n else {\n uaFields.operatingSystem = 'unknown';\n }\n // Check for browsers based on non-standard javascript apis, only not user agent\n const isSafari = !!window.ApplePaySession;\n const isChrome = !!window.chrome;\n const isFirefox = /Firefox/.test(ua);\n const isEdge = /Edg/.test(ua);\n const isFirefoxIOS = /FxiOS/.test(ua);\n const isChromeIOS = /CriOS/.test(ua);\n const isEdgeIOS = /EdgiOS/.test(ua);\n // FF and Edge User Agents both end with \"/MAJOR.MINOR\"\n if (isSafari ||\n (isChrome && !isEdge) ||\n isFirefoxIOS ||\n isChromeIOS ||\n isEdgeIOS) {\n // Safari version comes as \"... Version/MAJOR.MINOR ...\"\n // Chrome version comes as \"... Chrome/MAJOR.MINOR ...\"\n // FirefoxIOS version comes as \"... FxiOS/MAJOR.MINOR ...\"\n // ChromeIOS version comes as \"... CriOS/MAJOR.MINOR ...\"\n let searchWord;\n if (isFirefoxIOS) {\n searchWord = 'FxiOS';\n }\n else if (isChromeIOS) {\n searchWord = 'CriOS';\n }\n else if (isEdgeIOS) {\n searchWord = 'EdgiOS';\n }\n else if (isSafari) {\n searchWord = 'Version';\n }\n else {\n searchWord = 'Chrome';\n }\n const words = ua.split(' ');\n for (const word of words) {\n if (word.includes(searchWord)) {\n const version = word.split('/')[1];\n uaFields.browserVersion = version;\n }\n }\n }\n else if (isFirefox || isEdge) {\n const reverseUA = ua.split('').reverse().join('');\n const reverseVersion = reverseUA.split('/')[0];\n const version = reverseVersion.split('').reverse().join('');\n uaFields.browserVersion = version;\n }\n return uaFields;\n }\n getUid() {\n if (typeof window !== 'undefined' && window.localStorage) {\n let uid = window.localStorage.getItem('_capuid');\n if (uid) {\n return uid;\n }\n uid = this.uuid4();\n window.localStorage.setItem('_capuid', uid);\n return uid;\n }\n return this.uuid4();\n }\n uuid4() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n const r = (Math.random() * 16) | 0, v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":"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"}
|
package/dist/plugin.js
CHANGED
package/dist/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sources":["esm/index.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from '@capacitor/core';\nconst Device = registerPlugin('Device', {\n web: () => import('./web').then(m => new m.DeviceWeb()),\n});\nexport * from './definitions';\nexport { Device };\n//# sourceMappingURL=index.js.map","import { WebPlugin } from '@capacitor/core';\nexport class DeviceWeb extends WebPlugin {\n async getId() {\n return {\n identifier: this.getUid(),\n };\n }\n async getInfo() {\n if (typeof navigator === 'undefined' || !navigator.userAgent) {\n throw this.unavailable('Device API not available in this browser');\n }\n const ua = navigator.userAgent;\n const uaFields = this.parseUa(ua);\n return {\n model: uaFields.model,\n platform: 'web',\n operatingSystem: uaFields.operatingSystem,\n osVersion: uaFields.osVersion,\n manufacturer: navigator.vendor,\n isVirtual: false,\n webViewVersion: uaFields.browserVersion,\n };\n }\n async getBatteryInfo() {\n if (typeof navigator === 'undefined' || !navigator.getBattery) {\n throw this.unavailable('Device API not available in this browser');\n }\n let battery = {};\n try {\n battery = await navigator.getBattery();\n }\n catch (e) {\n // Let it fail, we don't care\n }\n return {\n batteryLevel: battery.level,\n isCharging: battery.charging,\n };\n }\n async getLanguageCode() {\n return {\n value: navigator.language.split('-')[0].toLowerCase(),\n };\n }\n async getLanguageTag() {\n return {\n value: navigator.language,\n };\n }\n parseUa(ua) {\n const uaFields = {};\n const start = ua.indexOf('(') + 1;\n let end = ua.indexOf(') AppleWebKit');\n if (ua.indexOf(') Gecko') !== -1) {\n end = ua.indexOf(') Gecko');\n }\n const fields = ua.substring(start, end);\n if (ua.indexOf('Android') !== -1) {\n const tmpFields = fields.replace('; wv', '').split('; ').pop();\n if (tmpFields) {\n uaFields.model = tmpFields.split(' Build')[0];\n }\n uaFields.osVersion = fields.split('; ')[1];\n }\n else {\n uaFields.model = fields.split('; ')[0];\n if (typeof navigator !== 'undefined' && navigator.oscpu) {\n uaFields.osVersion = navigator.oscpu;\n }\n else {\n if (ua.indexOf('Windows') !== -1) {\n uaFields.osVersion = fields;\n }\n else {\n const tmpFields = fields.split('; ').pop();\n if (tmpFields) {\n const lastParts = tmpFields\n .replace(' like Mac OS X', '')\n .split(' ');\n uaFields.osVersion = lastParts[lastParts.length - 1].replace(/_/g, '.');\n }\n }\n }\n }\n if (/android/i.test(ua)) {\n uaFields.operatingSystem = 'android';\n }\n else if (/iPad|iPhone|iPod/.test(ua) && !window.MSStream) {\n uaFields.operatingSystem = 'ios';\n }\n else if (/Win/.test(ua)) {\n uaFields.operatingSystem = 'windows';\n }\n else if (/Mac/i.test(ua)) {\n uaFields.operatingSystem = 'mac';\n }\n else {\n uaFields.operatingSystem = 'unknown';\n }\n // Check for browsers based on non-standard javascript apis, only not user agent\n const isSafari = !!window.ApplePaySession;\n const isChrome = !!window.chrome;\n const isFirefox = /Firefox/.test(ua);\n const isEdge = /Edg/.test(ua);\n const isFirefoxIOS = /FxiOS/.test(ua);\n const isChromeIOS = /CriOS/.test(ua);\n const isEdgeIOS = /EdgiOS/.test(ua);\n // FF and Edge User Agents both end with \"/MAJOR.MINOR\"\n if (isSafari ||\n (isChrome && !isEdge) ||\n isFirefoxIOS ||\n isChromeIOS ||\n isEdgeIOS) {\n // Safari version comes as \"... Version/MAJOR.MINOR ...\"\n // Chrome version comes as \"... Chrome/MAJOR.MINOR ...\"\n // FirefoxIOS version comes as \"... FxiOS/MAJOR.MINOR ...\"\n // ChromeIOS version comes as \"... CriOS/MAJOR.MINOR ...\"\n let searchWord;\n if (isFirefoxIOS) {\n searchWord = 'FxiOS';\n }\n else if (isChromeIOS) {\n searchWord = 'CriOS';\n }\n else if (isEdgeIOS) {\n searchWord = 'EdgiOS';\n }\n else if (isSafari) {\n searchWord = 'Version';\n }\n else {\n searchWord = 'Chrome';\n }\n const words = ua.split(' ');\n for (const word of words) {\n if (word.includes(searchWord)) {\n const version = word.split('/')[1];\n uaFields.browserVersion = version;\n }\n }\n }\n else if (isFirefox || isEdge) {\n const reverseUA = ua.split('').reverse().join('');\n const reverseVersion = reverseUA.split('/')[0];\n const version = reverseVersion.split('').reverse().join('');\n uaFields.browserVersion = version;\n }\n return uaFields;\n }\n getUid() {\n if (typeof window !== 'undefined' && window.localStorage) {\n let uid = window.localStorage.getItem('_capuid');\n if (uid) {\n return uid;\n }\n uid = this.uuid4();\n window.localStorage.setItem('_capuid', uid);\n return uid;\n }\n return this.uuid4();\n }\n uuid4() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n const r = (Math.random() * 16) | 0, v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":";;;AACK,UAAC,MAAM,GAAGA,mBAAc,CAAC,QAAQ,EAAE;IACxC,IAAI,GAAG,EAAE,MAAM,mDAAe,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;IAC3D,CAAC;;ICFM,MAAM,SAAS,SAASC,cAAS,CAAC;IACzC,IAAI,MAAM,KAAK,GAAG;IAClB,QAAQ,OAAO;IACf,YAAY,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE;IACrC,SAAS,CAAC;IACV,KAAK;IACL,IAAI,MAAM,OAAO,GAAG;IACpB,QAAQ,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE;IACtE,YAAY,MAAM,IAAI,CAAC,WAAW,CAAC,0CAA0C,CAAC,CAAC;IAC/E,SAAS;IACT,QAAQ,MAAM,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC;IACvC,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC1C,QAAQ,OAAO;IACf,YAAY,KAAK,EAAE,QAAQ,CAAC,KAAK;IACjC,YAAY,QAAQ,EAAE,KAAK;IAC3B,YAAY,eAAe,EAAE,QAAQ,CAAC,eAAe;IACrD,YAAY,SAAS,EAAE,QAAQ,CAAC,SAAS;IACzC,YAAY,YAAY,EAAE,SAAS,CAAC,MAAM;IAC1C,YAAY,SAAS,EAAE,KAAK;IAC5B,YAAY,cAAc,EAAE,QAAQ,CAAC,cAAc;IACnD,SAAS,CAAC;IACV,KAAK;IACL,IAAI,MAAM,cAAc,GAAG;IAC3B,QAAQ,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE;IACvE,YAAY,MAAM,IAAI,CAAC,WAAW,CAAC,0CAA0C,CAAC,CAAC;IAC/E,SAAS;IACT,QAAQ,IAAI,OAAO,GAAG,EAAE,CAAC;IACzB,QAAQ,IAAI;IACZ,YAAY,OAAO,GAAG,MAAM,SAAS,CAAC,UAAU,EAAE,CAAC;IACnD,SAAS;IACT,QAAQ,OAAO,CAAC,EAAE;IAClB;IACA,SAAS;IACT,QAAQ,OAAO;IACf,YAAY,YAAY,EAAE,OAAO,CAAC,KAAK;IACvC,YAAY,UAAU,EAAE,OAAO,CAAC,QAAQ;IACxC,SAAS,CAAC;IACV,KAAK;IACL,IAAI,MAAM,eAAe,GAAG;IAC5B,QAAQ,OAAO;IACf,YAAY,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;IACjE,SAAS,CAAC;IACV,KAAK;IACL,IAAI,MAAM,cAAc,GAAG;IAC3B,QAAQ,OAAO;IACf,YAAY,KAAK,EAAE,SAAS,CAAC,QAAQ;IACrC,SAAS,CAAC;IACV,KAAK;IACL,IAAI,OAAO,CAAC,EAAE,EAAE;IAChB,QAAQ,MAAM,QAAQ,GAAG,EAAE,CAAC;IAC5B,QAAQ,MAAM,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1C,QAAQ,IAAI,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IAC9C,QAAQ,IAAI,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE;IAC1C,YAAY,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACxC,SAAS;IACT,QAAQ,MAAM,MAAM,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAChD,QAAQ,IAAI,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE;IAC1C,YAAY,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;IAC3E,YAAY,IAAI,SAAS,EAAE;IAC3B,gBAAgB,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,aAAa;IACb,YAAY,QAAQ,CAAC,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,SAAS;IACT,aAAa;IACb,YAAY,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,YAAY,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC,KAAK,EAAE;IACrE,gBAAgB,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC;IACrD,aAAa;IACb,iBAAiB;IACjB,gBAAgB,IAAI,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE;IAClD,oBAAoB,QAAQ,CAAC,SAAS,GAAG,MAAM,CAAC;IAChD,iBAAiB;IACjB,qBAAqB;IACrB,oBAAoB,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;IAC/D,oBAAoB,IAAI,SAAS,EAAE;IACnC,wBAAwB,MAAM,SAAS,GAAG,SAAS;IACnD,6BAA6B,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC;IAC1D,6BAA6B,KAAK,CAAC,GAAG,CAAC,CAAC;IACxC,wBAAwB,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAChG,qBAAqB;IACrB,iBAAiB;IACjB,aAAa;IACb,SAAS;IACT,QAAQ,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;IACjC,YAAY,QAAQ,CAAC,eAAe,GAAG,SAAS,CAAC;IACjD,SAAS;IACT,aAAa,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;IAClE,YAAY,QAAQ,CAAC,eAAe,GAAG,KAAK,CAAC;IAC7C,SAAS;IACT,aAAa,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;IACjC,YAAY,QAAQ,CAAC,eAAe,GAAG,SAAS,CAAC;IACjD,SAAS;IACT,aAAa,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;IAClC,YAAY,QAAQ,CAAC,eAAe,GAAG,KAAK,CAAC;IAC7C,SAAS;IACT,aAAa;IACb,YAAY,QAAQ,CAAC,eAAe,GAAG,SAAS,CAAC;IACjD,SAAS;IACT;IACA,QAAQ,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC;IAClD,QAAQ,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;IACzC,QAAQ,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7C,QAAQ,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtC,QAAQ,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9C,QAAQ,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7C,QAAQ,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5C;IACA,QAAQ,IAAI,QAAQ;IACpB,aAAa,QAAQ,IAAI,CAAC,MAAM,CAAC;IACjC,YAAY,YAAY;IACxB,YAAY,WAAW;IACvB,YAAY,SAAS,EAAE;IACvB;IACA;IACA;IACA;IACA,YAAY,IAAI,UAAU,CAAC;IAC3B,YAAY,IAAI,YAAY,EAAE;IAC9B,gBAAgB,UAAU,GAAG,OAAO,CAAC;IACrC,aAAa;IACb,iBAAiB,IAAI,WAAW,EAAE;IAClC,gBAAgB,UAAU,GAAG,OAAO,CAAC;IACrC,aAAa;IACb,iBAAiB,IAAI,SAAS,EAAE;IAChC,gBAAgB,UAAU,GAAG,QAAQ,CAAC;IACtC,aAAa;IACb,iBAAiB,IAAI,QAAQ,EAAE;IAC/B,gBAAgB,UAAU,GAAG,SAAS,CAAC;IACvC,aAAa;IACb,iBAAiB;IACjB,gBAAgB,UAAU,GAAG,QAAQ,CAAC;IACtC,aAAa;IACb,YAAY,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxC,YAAY,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;IACtC,gBAAgB,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;IAC/C,oBAAoB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,oBAAoB,QAAQ,CAAC,cAAc,GAAG,OAAO,CAAC;IACtD,iBAAiB;IACjB,aAAa;IACb,SAAS;IACT,aAAa,IAAI,SAAS,IAAI,MAAM,EAAE;IACtC,YAAY,MAAM,SAAS,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9D,YAAY,MAAM,cAAc,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,YAAY,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxE,YAAY,QAAQ,CAAC,cAAc,GAAG,OAAO,CAAC;IAC9C,SAAS;IACT,QAAQ,OAAO,QAAQ,CAAC;IACxB,KAAK;IACL,IAAI,MAAM,GAAG;IACb,QAAQ,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,YAAY,EAAE;IAClE,YAAY,IAAI,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC7D,YAAY,IAAI,GAAG,EAAE;IACrB,gBAAgB,OAAO,GAAG,CAAC;IAC3B,aAAa;IACb,YAAY,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IAC/B,YAAY,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IACxD,YAAY,OAAO,GAAG,CAAC;IACvB,SAAS;IACT,QAAQ,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;IAC5B,KAAK;IACL,IAAI,KAAK,GAAG;IACZ,QAAQ,OAAO,sCAAsC,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE;IACpF,YAAY,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC;IACpF,YAAY,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAClC,SAAS,CAAC,CAAC;IACX,KAAK;IACL;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"plugin.js","sources":["esm/index.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from '@capacitor/core';\nconst Device = registerPlugin('Device', {\n web: () => import('./web').then(m => new m.DeviceWeb()),\n});\nexport * from './definitions';\nexport { Device };\n//# sourceMappingURL=index.js.map","import { WebPlugin } from '@capacitor/core';\nexport class DeviceWeb extends WebPlugin {\n async getId() {\n return {\n identifier: this.getUid(),\n };\n }\n async getInfo() {\n if (typeof navigator === 'undefined' || !navigator.userAgent) {\n throw this.unavailable('Device API not available in this browser');\n }\n const ua = navigator.userAgent;\n const uaFields = this.parseUa(ua);\n return {\n model: uaFields.model,\n platform: 'web',\n operatingSystem: uaFields.operatingSystem,\n osVersion: uaFields.osVersion,\n manufacturer: navigator.vendor,\n isVirtual: false,\n webViewVersion: uaFields.browserVersion,\n };\n }\n async getBatteryInfo() {\n if (typeof navigator === 'undefined' || !navigator.getBattery) {\n throw this.unavailable('Device API not available in this browser');\n }\n let battery = {};\n try {\n battery = await navigator.getBattery();\n }\n catch (e) {\n // Let it fail, we don't care\n }\n return {\n batteryLevel: battery.level,\n isCharging: battery.charging,\n };\n }\n async getLanguageCode() {\n return {\n value: navigator.language.split('-')[0].toLowerCase(),\n };\n }\n async getLanguageTag() {\n return {\n value: navigator.language,\n };\n }\n parseUa(ua) {\n const uaFields = {};\n const start = ua.indexOf('(') + 1;\n let end = ua.indexOf(') AppleWebKit');\n if (ua.indexOf(') Gecko') !== -1) {\n end = ua.indexOf(') Gecko');\n }\n const fields = ua.substring(start, end);\n if (ua.indexOf('Android') !== -1) {\n const tmpFields = fields.replace('; wv', '').split('; ').pop();\n if (tmpFields) {\n uaFields.model = tmpFields.split(' Build')[0];\n }\n uaFields.osVersion = fields.split('; ')[1];\n }\n else {\n uaFields.model = fields.split('; ')[0];\n if (typeof navigator !== 'undefined' && navigator.oscpu) {\n uaFields.osVersion = navigator.oscpu;\n }\n else {\n if (ua.indexOf('Windows') !== -1) {\n uaFields.osVersion = fields;\n }\n else {\n const tmpFields = fields.split('; ').pop();\n if (tmpFields) {\n const lastParts = tmpFields\n .replace(' like Mac OS X', '')\n .split(' ');\n uaFields.osVersion = lastParts[lastParts.length - 1].replace(/_/g, '.');\n }\n }\n }\n }\n if (/android/i.test(ua)) {\n uaFields.operatingSystem = 'android';\n }\n else if (/iPad|iPhone|iPod/.test(ua) && !window.MSStream) {\n uaFields.operatingSystem = 'ios';\n }\n else if (/Win/.test(ua)) {\n uaFields.operatingSystem = 'windows';\n }\n else if (/Mac/i.test(ua)) {\n uaFields.operatingSystem = 'mac';\n }\n else {\n uaFields.operatingSystem = 'unknown';\n }\n // Check for browsers based on non-standard javascript apis, only not user agent\n const isSafari = !!window.ApplePaySession;\n const isChrome = !!window.chrome;\n const isFirefox = /Firefox/.test(ua);\n const isEdge = /Edg/.test(ua);\n const isFirefoxIOS = /FxiOS/.test(ua);\n const isChromeIOS = /CriOS/.test(ua);\n const isEdgeIOS = /EdgiOS/.test(ua);\n // FF and Edge User Agents both end with \"/MAJOR.MINOR\"\n if (isSafari ||\n (isChrome && !isEdge) ||\n isFirefoxIOS ||\n isChromeIOS ||\n isEdgeIOS) {\n // Safari version comes as \"... Version/MAJOR.MINOR ...\"\n // Chrome version comes as \"... Chrome/MAJOR.MINOR ...\"\n // FirefoxIOS version comes as \"... FxiOS/MAJOR.MINOR ...\"\n // ChromeIOS version comes as \"... CriOS/MAJOR.MINOR ...\"\n let searchWord;\n if (isFirefoxIOS) {\n searchWord = 'FxiOS';\n }\n else if (isChromeIOS) {\n searchWord = 'CriOS';\n }\n else if (isEdgeIOS) {\n searchWord = 'EdgiOS';\n }\n else if (isSafari) {\n searchWord = 'Version';\n }\n else {\n searchWord = 'Chrome';\n }\n const words = ua.split(' ');\n for (const word of words) {\n if (word.includes(searchWord)) {\n const version = word.split('/')[1];\n uaFields.browserVersion = version;\n }\n }\n }\n else if (isFirefox || isEdge) {\n const reverseUA = ua.split('').reverse().join('');\n const reverseVersion = reverseUA.split('/')[0];\n const version = reverseVersion.split('').reverse().join('');\n uaFields.browserVersion = version;\n }\n return uaFields;\n }\n getUid() {\n if (typeof window !== 'undefined' && window.localStorage) {\n let uid = window.localStorage.getItem('_capuid');\n if (uid) {\n return uid;\n }\n uid = this.uuid4();\n window.localStorage.setItem('_capuid', uid);\n return uid;\n }\n return this.uuid4();\n }\n uuid4() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n const r = (Math.random() * 16) | 0, v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":"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"}
|
|
@@ -21,48 +21,6 @@ import UIKit
|
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
/**
|
|
25
|
-
* Get free disk space
|
|
26
|
-
*/
|
|
27
|
-
public func getFreeDiskSize() -> Int64? {
|
|
28
|
-
let paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)
|
|
29
|
-
if let dictionary = try? FileManager.default.attributesOfFileSystem(forPath: paths.last!) {
|
|
30
|
-
if let freeSize = dictionary[FileAttributeKey.systemFreeSize] as? NSNumber {
|
|
31
|
-
return freeSize.int64Value
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
return nil
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Get real free disk space
|
|
39
|
-
*/
|
|
40
|
-
public func getRealFreeDiskSize() -> Int64? {
|
|
41
|
-
do {
|
|
42
|
-
let values = try URL(fileURLWithPath: NSHomeDirectory() as String).resourceValues(forKeys: [URLResourceKey.volumeAvailableCapacityForImportantUsageKey])
|
|
43
|
-
if let available = values.volumeAvailableCapacityForImportantUsage {
|
|
44
|
-
return available
|
|
45
|
-
} else {
|
|
46
|
-
return nil
|
|
47
|
-
}
|
|
48
|
-
} catch {
|
|
49
|
-
return nil
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* Get total disk size
|
|
55
|
-
*/
|
|
56
|
-
public func getTotalDiskSize() -> Int64? {
|
|
57
|
-
let paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)
|
|
58
|
-
if let dictionary = try? FileManager.default.attributesOfFileSystem(forPath: paths.last!) {
|
|
59
|
-
if let freeSize = dictionary[FileAttributeKey.systemSize] as? NSNumber {
|
|
60
|
-
return freeSize.int64Value
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
return nil
|
|
64
|
-
}
|
|
65
|
-
|
|
66
24
|
public func getLanguageCode() -> String {
|
|
67
25
|
return String(Locale.preferredLanguages[0].prefix(2))
|
|
68
26
|
}
|
|
@@ -34,17 +34,10 @@ public class DevicePlugin: CAPPlugin, CAPBridgedPlugin {
|
|
|
34
34
|
#endif
|
|
35
35
|
|
|
36
36
|
let memUsed = implementation.getMemoryUsage()
|
|
37
|
-
let diskFree = implementation.getFreeDiskSize() ?? 0
|
|
38
|
-
let realDiskFree = implementation.getRealFreeDiskSize() ?? 0
|
|
39
|
-
let diskTotal = implementation.getTotalDiskSize() ?? 0
|
|
40
37
|
let systemVersionNum = implementation.getSystemVersionInt() ?? 0
|
|
41
38
|
|
|
42
39
|
call.resolve([
|
|
43
40
|
"memUsed": memUsed,
|
|
44
|
-
"diskFree": diskFree,
|
|
45
|
-
"diskTotal": diskTotal,
|
|
46
|
-
"realDiskFree": realDiskFree,
|
|
47
|
-
"realDiskTotal": diskTotal,
|
|
48
41
|
"name": UIDevice.current.name,
|
|
49
42
|
"model": modelName,
|
|
50
43
|
"operatingSystem": "ios",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@capacitor/device",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "7.0.0-alpha.1",
|
|
4
4
|
"description": "The Device API exposes internal information about the device, such as the model and operating system version, along with user information such as unique ids.",
|
|
5
5
|
"main": "dist/plugin.cjs.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"scripts": {
|
|
33
33
|
"test": "uvu -r esm -r ts-node/register src/__tests__",
|
|
34
34
|
"verify": "npm run verify:ios && npm run verify:android && npm run verify:web",
|
|
35
|
-
"verify:ios": "xcodebuild build -scheme CapacitorDevice -
|
|
35
|
+
"verify:ios": "xcodebuild build -scheme CapacitorDevice -destination generic/platform=iOS",
|
|
36
36
|
"verify:android": "cd android && ./gradlew clean build test && cd ..",
|
|
37
37
|
"verify:web": "npm run build && npm test",
|
|
38
38
|
"lint": "npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint",
|
|
@@ -41,17 +41,17 @@
|
|
|
41
41
|
"prettier": "prettier \"**/*.{css,html,ts,js,java}\"",
|
|
42
42
|
"swiftlint": "node-swiftlint",
|
|
43
43
|
"docgen": "docgen --api DevicePlugin --output-readme README.md --output-json dist/docs.json",
|
|
44
|
-
"build": "npm run clean && npm run docgen && tsc && rollup -c rollup.config.
|
|
44
|
+
"build": "npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs",
|
|
45
45
|
"clean": "rimraf ./dist",
|
|
46
46
|
"watch": "tsc --watch",
|
|
47
47
|
"prepublishOnly": "npm run build",
|
|
48
48
|
"publish:cocoapod": "pod trunk push ./CapacitorDevice.podspec --allow-warnings"
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
|
-
"@capacitor/android": "
|
|
52
|
-
"@capacitor/core": "
|
|
51
|
+
"@capacitor/android": "next",
|
|
52
|
+
"@capacitor/core": "next",
|
|
53
53
|
"@capacitor/docgen": "0.2.2",
|
|
54
|
-
"@capacitor/ios": "
|
|
54
|
+
"@capacitor/ios": "next",
|
|
55
55
|
"@ionic/eslint-config": "^0.4.0",
|
|
56
56
|
"@ionic/prettier-config": "~1.0.1",
|
|
57
57
|
"@ionic/swiftlint-config": "^1.1.2",
|
|
@@ -59,15 +59,15 @@
|
|
|
59
59
|
"esm": "^3.2.25",
|
|
60
60
|
"prettier": "~2.3.0",
|
|
61
61
|
"prettier-plugin-java": "~1.0.2",
|
|
62
|
-
"rimraf": "^
|
|
63
|
-
"rollup": "^
|
|
62
|
+
"rimraf": "^6.0.1",
|
|
63
|
+
"rollup": "^4.26.0",
|
|
64
64
|
"swiftlint": "^1.0.1",
|
|
65
65
|
"ts-node": "^9.1.1",
|
|
66
66
|
"typescript": "~4.1.5",
|
|
67
67
|
"uvu": "^0.5.1"
|
|
68
68
|
},
|
|
69
69
|
"peerDependencies": {
|
|
70
|
-
"@capacitor/core": "
|
|
70
|
+
"@capacitor/core": "next"
|
|
71
71
|
},
|
|
72
72
|
"prettier": "@ionic/prettier-config",
|
|
73
73
|
"swiftlint": "@ionic/swiftlint-config",
|
|
@@ -85,5 +85,5 @@
|
|
|
85
85
|
"publishConfig": {
|
|
86
86
|
"access": "public"
|
|
87
87
|
},
|
|
88
|
-
"gitHead": "
|
|
88
|
+
"gitHead": "2158e6aa205a584a258c34f606e694fdf31cdcc0"
|
|
89
89
|
}
|