Push API
プッシュ エーピーアイ(API & Web機能)
意味 サーバーからの通知を受信
Push APIとは?
Push APIを使用すると、ウェブアプリケーションはサーバーからのプッシュ通知を受信できます。
Push APIの具体的な使い方
プッシュ通知を購読する例
if ('serviceWorker' in navigator && 'PushManager' in window) {
navigator.serviceWorker.ready.then(function(registration) {
return registration.pushManager.subscribe({
userVisibleOnly: true,
applicationServerKey: urlBase64ToUint8Array('YOUR_PUBLIC_VAPID_KEY')
});
}).then(function(subscription) {
console.log('Push通知の購読に成功しました:', JSON.stringify(subscription));
// ここでサーバーに購読情報を送信します
}).catch(function(error) {
console.error('Push通知の購読に失敗しました:', error);
});
} else {
console.warn('Push通知がサポートされていません');
}
function urlBase64ToUint8Array(base64String) {
const padding = '='.repeat((4 - base64String.length % 4) % 4);
const base64 = (base64String + padding)
.replace(/-/g, '+')
.replace(/_/g, '/');
const rawData = window.atob(base64);
const outputArray = new Uint8Array(rawData.length);
for (let i = 0; i < rawData.length; ++i) {
outputArray[i] = rawData.charCodeAt(i);
}
return outputArray;
}
👇出力結果
Push通知の購読に成功しました: {"endpoint":"https://fcm.googleapis.com/fcm/send/..."}
この例では、Push APIを使用してプッシュ通知を購読する方法を示しています。まず、Service WorkerとPush APIがサポートされているか確認し、サポートされている場合はプッシュ通知を購読します。購読には、VAPID(Voluntary Application Server Identification)キーが必要です。購読が成功すると、購読情報がコンソールに表示されます。
Push APIに関するよくある質問
Push APIが学べる書籍の紹介
「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、JavaScriptのPush APIやFetch API、Clipboard API、Web Storage、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。
よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。
HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。
JavaScriptを学べる「プログラミング単語帳」アプリ
プログラミング単語帳がアプリになりました!JavaScriptはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。
収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。
いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。
2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!
2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!