메인 콘텐츠로 바로가기
Tutorial

Offline Screen in Vue, Angular, React with Capacitor

Vue, Angular, 또는 React 애플리케이션에서 오프라인 화면을 구현하는 방법을 알아보세요. 네트워크 API와 Capacitor를 사용하여 사용자 경험을 향상시키세요. 오프라인 시나리오를 효과적으로 처리하세요.

Martin Donadieu

Martin Donadieu

콘텐츠 마케터

Offline Screen in Vue, Angular, React with Capacitor

Vue 3, Angular 14, 또는 React에서 오프라인 화면 만들기

이 튜토리얼에서는 Vue 3, Angular 14, 및 React 애플리케이션에서 오프라인 화면을 만들기 위해 네트워크 API를 사용하는 방법을 배웁니다. 네트워크 API는 네트워크 및 연결 정보를 제공하여 오프라인 시나리오를 처리하고 사용자 경험을 향상시키는 데 도움이 됩니다. 단순한 온라인/오프라인 플래그보다 더 깊은 연결 가능성 확인을 위해 @capgo/capacitor-network-diagnostics 네이티브 code에서 URL 연결 가능성, TCP 포트, 및 WebSocket handshake를 테스트할 수 있습니다.

기본 조건

시작하기 전에 다음을 설치하십시오:

프로젝트 설정

첫 번째로, 각 프레임워크의 respective scaffolding tool을 사용하여 새로운 프로젝트를 생성하십시오.

Vue 3

터미널을 열고 다음 명령어를 실행하여 새로운 Vue 3 프로젝트를 생성하십시오:

vue create offline-screen-vue3

기본 preset을 선택하고 프로젝트가 생성될 때까지 기다리십시오.

Angular 14

터미널을 열고 다음 명령어를 실행하여 새로운 Angular 14 프로젝트를 생성하세요:

ng new offline-screen-angular14

Follow the prompts, and when asked for additional features, select “Routing” by pressing the spacebar key. Wait for the project to be created.

React

터미널을 열고 다음 명령어를 실행하여 새로운 React 프로젝트를 생성하세요:

npx create-react-app offline-screen-react

Wait for the project to be created.

API 네트워크 패키지 설치

Now, let’s install the @capacitor/network API 패키지를 설치하여 네트워크 기능을 제공합니다.

터미널을 열고 프로젝트 디렉토리로 이동한 후 다음 명령어를 실행하여 패키지를 설치하세요:

npm install @capacitor/network

For Capacitor 프로젝트에 대해, 다음 명령어를 실행하여 네이티브 프로젝트 파일을 동기화하세요:

npx cap sync

Capacitor과 CLI이 전역으로 설치되어 있는지 확인하세요. 다음 명령어를 실행하여 확인하세요:

npm install -g @capacitor/cli

오프라인 화면 구현

다음으로, 각 프레임워크에서 오프라인 화면 기능을 구현할 것입니다. 사용자가 오프라인 상태가 되면 간단한 메시지를 표시할 것입니다.

Vue 3

Vue 3 프로젝트에서 열어보세요. src/main.js 파일에서 Network 모듈을 import하세요. @capacitor/network:

import { createApp } from 'vue';
import { Network } from '@capacitor/network';

const app = createApp(App);

// Your application setup

app.mount('#app');

Network.addListener('networkStatusChange', status => {
  if (status.connected) {
    // User is back online
    // Hide the offline screen
    document.getElementById('offline-screen').style.display = 'none';
  } else {
    // User is offline
    // Display the offline screen
    document.getElementById('offline-screen').style.display = 'block';
  }
});

const logCurrentNetworkStatus = async () => {
  const status = await Network.getStatus();
  console.log('Network status:', status);
};

모듈을 import한 후, 애플리케이션 템플릿 (App.vue )에 <div> 태그를 추가하세요. id 속성이 ""인 태그를 추가하세요. offline-screen 오프라인 화면 메시지를 표시하기 위해

<template>
  <div id="app">
    <div id="offline-screen">
      <h1>You are offline</h1>
      <p>Please check your internet connection and try again.</p>
    </div>
    <!-- Your application content -->
  </div>
</template>

<style>
#offline-screen {
  display: none;
  text-align: center;
  padding: 20px;
  background-color: #f2f2f2;
}

#offline-screen h1 {
  font-size: 24px;
}

#offline-screen p {
  font-size: 16px;
}
</style>

현재, 사용자가 오프라인 상태가 되면 오프라인 화면이 표시됩니다. 사용자가 다시 온라인 상태가 되면 오프라인 화면이 숨겨집니다.

Angular 14

Angular 14 프로젝트에서 src/app/app.component.ts 파일을 열고 Network 모듈을 import하세요. @capacitor/network:

import { Component } from '@angular/core';
import { Network } from '@capacitor/network';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {

  constructor() {
    Network.addListener('networkStatusChange', status => {
      if (status.connected) {
        // User is back online
        // Hide the offline screen
        document.getElementById('offline-screen').style.display = 'none';
      } else {
        // User is offline
        // Display the offline screen
        document.getElementById('offline-screen').style.display = 'block';
      }
    });
  }

  logCurrentNetworkStatus = async () => {
    const status = await Network.getStatus();
    console.log('Network status:', status);
  };

}

애플리케이션 템플릿 (app.component.html )에 <div> id가 ""인 요소를 추가하여 오프라인 화면 메시지를 표시하세요. offline-screen styles.css 파일에 다음 스타일을 추가하세요.

<div id="offline-screen">
  <h1>You are offline</h1>
  <p>Please check your internet connection and try again.</p>
</div>

<!-- Your application content -->

현재, 사용자가 오프라인 상태가 되면 오프라인 화면이 표시됩니다. 사용자가 다시 온라인 상태가 되면 오프라인 화면이 숨겨집니다. app.component.css Angular 14

#offline-screen {
  display: none;
  text-align: center;
  padding: 20px;
  background-color: #f2f2f2;
}

#offline-screen h1 {
  font-size: 24px;
}

#offline-screen p {
  font-size: 16px;
}

Angular 14 프로젝트에서

React

React 프로젝트에서 src/App.js 파일을 열고 Network 모듈을 import하세요. @capacitor/network:

import React, { useEffect } from 'react'
import { Network } from '@capacitor/network'

function App() {

  useEffect(() => {
    Network.addListener('networkStatusChange', (status) => {
      if (status.connected) {
        // User is back online
        // Hide the offline screen
        document.getElementById('offline-screen').style.display = 'none'
      }
      else {
        // User is offline
        // Display the offline screen
        document.getElementById('offline-screen').style.display = 'block'
      }
    })
  }, [])

  const logCurrentNetworkStatus = async () => {
    const status = await Network.getStatus()
    console.log('Network status:', status)
  }

  return (
    <div id="app">
      <div id='offline-screen'>
        <h1>You are offline</h1>
        <p>Please check your internet connection and try again.</p>
      </div>
      {/* Your application content */}
    </div>
  )

}

export default App

모듈을 App.css 에서 import하세요.

#offline-screen {
  display: none;
  text-align: center;
  padding: 20px;
  background-color: #f2f2f2;
}

#offline-screen h1 {
  font-size: 24px;
}

#offline-screen p {
  font-size: 16px;
}

파일에 다음 스타일을 추가하세요:

offline 상태일 때 offline 화면이 표시되고, 온라인 상태일 때 offline 화면이 숨겨집니다.

The Network API provides several methods and interfaces to help you handle the network connection. Here are some of the key ones:

  • getStatus()네트워크 __CAPGO_KEEP_0__는 네트워크 연결을 처리하는 데 도움이 되는 여러 메서드 및 인터페이스를 제공합니다. 주요 메서드 및 인터페이스 중 일부는 다음과 같습니다:
  • addListener('networkStatusChange', ...): 네트워크 연결의 현재 상태를 조회합니다.

: 네트워크 연결의 변경을 감지합니다.Keep going from Offline Screen in Vue, Angular, React with Capacitor

만약 __CAPGO_KEEP_0__을 사용하고 있다면 Vue, Angular, React에서 오프라인 화면을 사용하고 Capacitor을 통해 자연스러운 미디어 및 인터페이스 동작을 계획하고, __CAPGO_KEEP_0__을 통해 @capgo/capacitor-live-activities를 사용하여 @capgo/capacitor-live-activities에서 capgo을 사용하여 @capgo/capacitor-live-activities @capgo/capacitor-live-activities에서 capgo을 사용하여 @capgo/capacitor-video-player를 사용하여 @capgo/capacitor-video-player에서 capgo을 사용하여 @capgo/capacitor-video-player @capgo/capacitor-video-player에서 capgo을 사용하여 @capgo/capacitor-native-navigation을 사용하여 for the native capability in Using @capgo/capacitor-native-navigation.

Capacitor 앱에 대한 실시간 업데이트

웹-layer 버그가 생겼을 때, 앱 스토어 승인 대기 없이 Capgo를 통해 빠르게 수정을 배포하세요. 사용자는 배경에서 업데이트를 받으며, 네이티브 변경 사항은 일반적인 검토 경로를 유지합니다.

시작하기

블로그에서 최신 뉴스

Capgo은 전문적인 모바일 앱을 만들기 위해 필요한 최고의洞察력을 제공합니다.