Skip to content

Commit afaa492

Browse files
martinkaintasCedrikNikita
authored andcommitted
feat: use capacitor plugin for network status
1 parent 5ee11cf commit afaa492

File tree

5 files changed

+31
-2
lines changed

5 files changed

+31
-2
lines changed

android/app/capacitor.build.gradle

+1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ dependencies {
1515
implementation project(':capacitor-clipboard')
1616
implementation project(':capacitor-haptics')
1717
implementation project(':capacitor-keyboard')
18+
implementation project(':capacitor-network')
1819
implementation project(':capacitor-share')
1920
implementation project(':capacitor-splash-screen')
2021
implementation project(':capacitor-status-bar')

android/capacitor.settings.gradle

+3
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ project(':capacitor-haptics').projectDir = new File('../node_modules/@capacitor/
2020
include ':capacitor-keyboard'
2121
project(':capacitor-keyboard').projectDir = new File('../node_modules/@capacitor/keyboard/android')
2222

23+
include ':capacitor-network'
24+
project(':capacitor-network').projectDir = new File('../node_modules/@capacitor/network/android')
25+
2326
include ':capacitor-share'
2427
project(':capacitor-share').projectDir = new File('../node_modules/@capacitor/share/android')
2528

package-lock.json

+9
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
"@capacitor/haptics": "5.0.2",
4646
"@capacitor/ios": "5.0.4",
4747
"@capacitor/keyboard": "5.0.2",
48+
"@capacitor/network": "^5.0.6",
4849
"@capacitor/share": "^5.0.5",
4950
"@capacitor/splash-screen": "^5.0.6",
5051
"@capacitor/status-bar": "5.0.2",

src/composables/connection.ts

+17-2
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,29 @@
11
import { computed, ref } from 'vue';
2+
import { Network } from '@capacitor/network';
3+
import { IS_MOBILE_APP } from '@/constants';
24

35
let isConnectionStatusWatched = false;
46
const isOnline = ref(window.navigator.onLine);
57

68
export function useConnection() {
9+
if (IS_MOBILE_APP && !isConnectionStatusWatched) {
10+
Network.getStatus().then((status) => {
11+
isOnline.value = status.connected;
12+
});
13+
}
14+
715
function watchConnectionStatus() {
816
if (!isConnectionStatusWatched) {
917
isConnectionStatusWatched = true;
10-
window.addEventListener('online', () => { isOnline.value = true; });
11-
window.addEventListener('offline', () => { isOnline.value = false; });
18+
19+
if (IS_MOBILE_APP) {
20+
Network.addListener('networkStatusChange', (status) => {
21+
isOnline.value = status.connected;
22+
});
23+
} else {
24+
window.addEventListener('online', () => { isOnline.value = true; });
25+
window.addEventListener('offline', () => { isOnline.value = false; });
26+
}
1227
}
1328
}
1429

0 commit comments

Comments
 (0)