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 can test URL reachability, TCP ports, and WebSocket handshakes from native code.
前提条件
このチュートリアルを始める前に、以下をインストールしてください。
- Node.js (バージョン14以上)
- Vue CLI
- Angular CLI
- Create React App
プロジェクトの設定
まず、各フレームワークのためのサブフォルダを作成し、Capacitorをインストールします。
Vue 3
ターミナルを開いて、次のコマンドを実行して新しい Vue 3 プロジェクトを作成します。
vue create offline-screen-vue3
プロジェクトの作成を待ってください。
Angular 14
ターミナルを開いて、次のコマンドを実行して、新しいAngular 14プロジェクトを作成します。
ng new offline-screen-angular14
プロンプトに従い、追加の機能について尋ねられたときに「Routing」を選択してください。 スペースバー プロジェクトの作成を待ってください。
リアクト
ターミナルを開いて、次のコマンドを実行して新しい React プロジェクトを作成します。
npx create-react-app offline-screen-react
プロジェクトの作成を待ってください。
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 __CAPGO_KEEP_0__ @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);
};
In your application template (),App.vueを追加します。 <div> を指定します。 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 モジュールをインポートします。 @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> __CAPGO_KEEP_0__ 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 -->
次のスタイルを追加します。 app.component.css ファイル:
#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
コンテキスト: Capgo マーケティング ウェブサイト。役割: 短い UI ラベルまたはナビゲーション アイテム。見られる場所: コンポーネント FrameworkSelector.astro。メッセージ キー `framework_react` (フレームワーク React)。 src/App.js React プロジェクトで、次のファイルを開きます。 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 {
display: none;
text-align: center;
padding: 20px;
background-color: #f2f2f2;
}
#offline-screen h1 {
font-size: 24px;
}
#offline-screen p {
font-size: 16px;
}
ファイル:
ユーザーがオフラインになったとき、オフライン画面が表示されます。ユーザーがオンラインになったとき、オフライン画面が非表示になります。
ネットワーク API は、ネットワーク接続を管理するためにいくつかのメソッドとインターフェイスを提供しています。ここでは、主なものを紹介します。
getStatus(): ネットワーク接続の現在の状態を照会します。addListener('networkStatusChange', ...): ネットワーク接続の変更を待ちます。
Vue、Angular、Reactのオフライン画面から続けて Capacitor
Vue、Angular、Reactのオフライン画面から続けて __CAPGO_KEEP_0__ ネイティブメディアとインターフェイスの動作を計画する場合、 Capacitor を使用します。 __CAPGO_KEEP_0__ を使用して、ネイティブ機能の __CAPGO_KEEP_1__-live-activities に接続します。 capgo を使用して、ネイティブ機能の capacitor-live-activities に接続します。 capgo を使用して、 capacitor-live-activities の実装詳細を提供します。 capgo を使用して、ネイティブ機能の capacitor-video-player に接続します。 capgo を使用して、ネイティブ機能の capacitor-video-player に接続します。 capgo を使用して、 capacitor-video-player の実装詳細を提供します。 for the native capability in Using @capgo/capacitor-video-player, @capgo/capacitor-video-player for the implementation detail in @capgo/capacitor-video-player, and Using @capgo/capacitor-native-navigation for the native capability in Using @capgo/capacitor-native-navigation.