メインコンテンツにジャンプ
チュートリアル

CapacitorでVue、Angular、Reactのオフライン画面

Vue、Angular、またはReactアプリケーションでNetwork APIとCapacitorを使用してオフライン画面を実装する方法を学びます。ユーザー体験を改善するには、オフラインシナリオを効果的に管理する必要があります。

マーティン・ドナディュー

マーティン・ドナディュー

コンテンツマーケター

Offline Screen in Vue, Angular, React with Capacitor

How to Create an Offline Screen in Vue 3, Angular 14, or React

このチュートリアルでは、Vue 3、Angular 14、Reactアプリケーションでオフライン画面を作成する方法を学びます。Network APIを使用して、Network APIを使用してネットワークと接続性情報を取得し、オフラインシナリオを処理し、ユーザー体験を向上させることができます。オンライン/オフラインフラグの単純なチェックを超えるより深い接続性チェックのために @capgo/capacitor-network-diagnostics ネイティブcodeからURLの到達可能性、TCPポート、WebSocketハンドシェイクをテストできます。

前提条件

このチュートリアルを始める前に、以下をインストールしてください。

プロジェクトの設定

まず、各フレームワークのためのスケルトン ツールを使用して、新しいプロジェクトを作成してください。

Vue 3

ターミナルを開いて、次のコマンドを実行して、新しい Vue 3 プロジェクトを作成してください:

vue create offline-screen-vue3

デフォルトのプリセットを選択し、プロジェクトの作成を待ちます。

Angular 14

ターミナルを開いて、次のコマンドを実行して、新しい Angular 14 プロジェクトを作成してください:

ng new offline-screen-angular14

プロンプトに従い、追加の機能について尋ねられたときに、スペースバー キーを押して「ルーティング」を選択してください。プロジェクトの作成を待ちます。 React

ターミナルを開いて、次のコマンドを実行して、新しい React プロジェクトを作成してください:

プロジェクトの作成を待ちます。

npx create-react-app offline-screen-react

__CAPGO_KEEP_0__

Installing the Network API

さて、 @capacitor/network package, which provides the Network API.

ターミナルを開いてプロジェクトディレクトリに移動してください。次に、以下のコマンドを実行してパッケージをインストールしてください。

npm install @capacitor/network

Capacitor プロジェクトの場合、以下のコマンドも実行してネイティブプロジェクトファイルを同期してください。

npx cap sync

Capacitor と CLI がグローバルにインストールされていることを確認してください。

npm install -g @capacitor/cli

オフライン画面の実装

次に、各フレームワークでオフライン画面の機能を実装します。ユーザーがオフラインになったときに、シンプルなメッセージを表示します。

Vue 3

Vue 3 プロジェクトで、 src/main.js ファイルを開いて Network モジュールをインポートしてください。 @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);
};

アプリケーション テンプレート (App.vueに追加する必要があります。 <div> __CAPGO_KEEP_0__ offline-screen でオフライン画面メッセージを表示するためにIDが

<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 src/app/app.component.ts Angular 14 プロジェクトで、 Network ファイルを開いて @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> に追加する必要があります。 offline-screen オフライン画面メッセージを表示する:

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

<!-- Your application content -->

__CAPGO_KEEP_0__を追加してください。 app.component.css __CAPGO_KEEP_0__ファイル:

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

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

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

ユーザーがオフラインになった場合、オフライン画面が表示されます。ユーザーがオンラインに戻った場合、オフライン画面が非表示になります。

React

Reactプロジェクトで、__CAPGO_KEEP_0__ファイルを開いてください。__CAPGO_KEEP_1__モジュールをインポートしてください。 src/App.js __CAPGO_KEEP_0__ファイル: Network ユーザーがオフラインになった場合、オフライン画面が表示されます。ユーザーがオンラインに戻った場合、オフライン画面が非表示になります。 @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 Offline screen will be displayed when the user goes offline. When the user comes back online, the offline screen will be hidden.

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

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

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

Add the following styles to the __CAPGO_KEEP_0__ file:

In your __CAPGO_KEEP_1__ project, open the __CAPGO_KEEP_0__ file and import the __CAPGO_KEEP_1__ module from __CAPGO_KEEP_2__

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

Vue、Angular、ReactでCapacitorを使用してオフライン画面から続きます。

Capacitorを使用している場合、オフライン画面から続きます。 Offline Screen in Vue, Angular, React with Capacitor Using @__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-live-activities Capacitorを使用して、ネイティブ機能を実装する場合、@capgo/capacitor-live-activitiesを使用します。 @capgo/capacitor-live-activities Capacitorを使用して、@capgo/capacitor-live-activitiesの実装詳細を確認します。 Using @capgo/capacitor-video-player Using @capgo/capacitor-live-activities for the native capability in Using @capgo/capacitor-live-activities, for the native capability in Using @capgo/capacitor-video-player, @capgo/capacitor-video-player for the implementation detail in @capgo/capacitor-video-player, and @capgo/capacitor-native-navigation for the native capability in Using @capgo/capacitor-native-navigation.

Capacitorアプリのリアルタイム更新

Capgoのバグが実際に生じた場合、Capgoを使用して修正を配信するのではなく、数日間待ってアプリストアの承認を待つのではなく、ユーザーはバックグラウンドで更新を受け取り、ネイティブの変更は通常のレビュー経路で残る。

Get Started Now

Latest from our Blog

Capgoは、プロフェッショナルなモバイルアプリを作成するために必要な最良の洞察を提供します。