質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PWA(Progressive Web Apps)

PWA(Progressive Web Apps)は、アプリのようなWebサイトを指します。仕様が異なる様々なデバイスで表示でき、インストールも不要。さらに訪問し続けることでユーザーについて学び、強力なPWAとなります。

Q&A

解決済

4回答

554閲覧

ブラウザ起動時にfacebookの通知が表示される理由

hayash-dev

総合スコア50

PWA(Progressive Web Apps)

PWA(Progressive Web Apps)は、アプリのようなWebサイトを指します。仕様が異なる様々なデバイスで表示でき、インストールも不要。さらに訪問し続けることでユーザーについて学び、強力なPWAとなります。

0グッド

0クリップ

投稿2019/03/12 07:28

編集2019/03/12 08:01

facebookの通知を許可しているブラウザが、起動時にfacebookから「友達がコメントした」等の通知を行う機能を、自分のアプリに実装したいと考えているのですが、仕組みが判りません。

ブラウザ起動時にfacebookのサーバに、自分宛ての通知有無をポーリングする処理が動いていると思うのですが
その場合、ブラウザ起動時に任意の処理を実行する あるいは、任意のサイトにリクエストするという挙動が必要ですが
そんな事ができるのか・・・?という状態です。

仕組みを御存じな方がいらっしゃいましたらご教示頂けないでしょうか。

よろしくお願いいたします。

==追記==
通知自体は、ブラウザのNotification APIで通知を行う想定です。
Notification APIをブラウザ起動時に実行するのですが、その前にサーバとやりとりするには、どうすればいいのかが不明なのです。

具体的には、firefoxやchromeなどのブラウザを立ちあげた際、facebookのページを表示していないのにも関わらず、facebookからの通知が来ます。
その仕組みが知りたいのです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2019/03/12 07:42

通知を行うのは「ブラウザ」ですか、それとも「自分のアプリ」でしょうか?
hayash-dev

2019/03/12 07:56

ブラウザのNotification APIで通知を行う想定です。 Notification APIをブラウザ起動時に実行するのですが、その前にサーバとやりとりするには、どうすればいいのかが不明なのです。
maisumakun

2019/03/12 08:00

Notifications APIは、「システムレベルでページ外部に表示される」、「アプリケーションがアイドルやバックグラウンドの状態であっても」表示されるものなのですが、あえて「ブラウザ起動時」に限定したいのでしょうか。 https://developer.mozilla.org/ja/docs/WebAPI/Using_Web_Notifications
hayash-dev

2019/03/12 08:03

アイドルやバックグラウンドでも表示を考えていますが、伺いたいのはfacebookの例の仕組みです。
guest

回答4

0

ベストアンサー

ServiceWorkerとWebPush辺りで検索。

投稿2019/03/12 08:31

kawax

総合スコア10377

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hayash-dev

2019/03/12 08:47

御回答ありがとうございます。 'web push'のキーワードで目的の情報にたどり着きました。
guest

0

自分向けの整理として記載しておきます。

プッシュ通知を行う構成

  • アプリサーバ(プッシュサーバにプッシュ通知をリクエストする役割
  • プッシュサーバ(ブラウザベンダがプッシュ通知サービス提供するサーバ
  • ブラウザ

ブラウザ起動時にfacebookのサーバに、自分宛ての通知有無をポーリングする処理が動いていると思うのですが

その場合、ブラウザ起動時に任意の処理を実行する あるいは、任意のサイトにリクエストするという挙動が必要ですが
そんな事ができるのか・・・?という状態です。

上記の想像おおむね合っていた。
ブラウザは起動時に、自ブラウザベンダ向けのプッシュサーバと接続する。

接続後は、プッシュサーバからの通知を受けた時にNotifications APIで通知を表示する通常の流れで処理できる。

投稿2019/03/12 09:01

hayash-dev

総合スコア50

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tukatter

2019/03/12 17:23

お役に立てずにすみません。 とりあえず解決できてよかったですね。
guest

0

ブラウザ起動時にfacebookのサーバに、自分宛ての通知有無をポーリングする処理が動いていると思うのですが

いえ、Notifications APIはポーリングではなく、プッシュ配信で動いています。

投稿2019/03/12 08:05

maisumakun

総合スコア145183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2019/03/12 08:09

スマホの場合はシステム上のプッシュ機能を利用していますので、ポーリングの問題はありません。
hayash-dev

2019/03/12 08:19

御回答ありがとうございます。 ブラウザ起動後のシーケンスとしては、ブラウザを起動してどのタイミングで特定サイトとのプッシュ配信が可能な状態になるのでしょうか。 それとも、前回クライアントからサーバへ接続したコネクションを保持し続け、ロングポーリングしているので、ブラウザ起動直後にすぐプッシュ配信が行えるという事でしょうか。
maisumakun

2019/03/12 08:20

確認を忘れていましたが、環境はパソコンですか?モバイルですか?
guest

0

プッシュ通知によるトーストの表示などを利用すればいいのかと思います。
Notification APIを使って通知していいかの許可を確認して
いいなら通知する命令を送るということでしょう。詳しく書くと大変そうなので
キーワードで検索してみるといいです。

パソコンの場合メモリの消費が多いという理由で切っている人も多いため
スマホアプリでプッシュ通知を提供しているサービスと連携し
利用する方が一般的かもしれません。

投稿2019/03/12 07:47

tukatter

総合スコア284

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問