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

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

新規登録して質問してみよう
ただいま回答率
85.46%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

1114閲覧

ブラウザプッシュ通知と携帯などのプッシュ通知は別物なんですか?

rtya

総合スコア6

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

2クリップ

投稿2021/08/16 02:37

ブラウザプッシュ通知の場合バックグラウンドで動かせない、
これは正しい認識でいいでしょうか?
下記のようなブラウザプッシュ通知はどんな使い道があるんですか?

下記は実行したブラウザ(ドメイン)を開いていないと、通知できない
ブラウザを開いてなくても通知できるのがプッシュ通知だと思っていました
大間違いでしょうか?

<button onclick="notifyMe()" style="width:300px;height:300px">Notify me!</button> <script> function notifyMe() { let promise = Notification.requestPermission(); if (!("Notification" in window)) { alert("This browser does not support desktop notification"); } else if (Notification.permission === "granted") { var notification = new Notification("Hi there!"); } else if (Notification.permission !== "denied") { Notification.requestPermission().then(function (permission) { if (permission === "granted") { var notification = new Notification("Hi there!"); } }); } } </script>

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

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

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

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

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

guest

回答2

0

ベストアンサー

質問者さんが触ってみた Notification は、通知を表示するためだけのAPIであり、「プッシュ通知」ではありません。

プッシュを行うためにはPush APIを利用する必要があります。

Push API (含 Service Worker) と Notification API を組み合わせれば、スマートフォンアプリの様にアプリが前面になくても通知を出すことが可能になります。

Service Worker やサーバサイドの仕組みも必要になるため、試すだけでも簡単ではない印象です。

投稿2021/08/16 03:13

編集2021/08/16 04:41
int32_t

総合スコア21008

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

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

rtya

2021/08/16 03:20

Notificationは、検索したら、プッシュ通知として紹介してるサイトが多かったので、騙されました
退会済みユーザー

退会済みユーザー

2021/08/16 04:12

> rtya さん 現時点でついている回答は、2件とも「質問の前提がおかしいです」という回答です。 とてもベストアンサーを選べるような状況ではないはずですが、何をもってベストアンサーとしたのでしょうか? 個人的にこの質問は気になるものなので、適切にクローズしてほしいところです。
guest

0

ブラウザプッシュ通知の場合バックグラウンドで動かせない、

これは正しい認識でいいでしょうか?

間違っています。

投稿2021/08/16 02:40

maisumakun

総合スコア145208

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

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

maisumakun

2021/08/16 02:42

なお、iOS Safariはプッシュ通知に非対応ですので、モバイル環境で利用可能なのはAndroidに限られます。
rtya

2021/08/16 02:43

Androidもプッシュ通知許可しても何も届かないんですが、設定がおかしいだけでしょうか?
maisumakun

2021/08/16 02:46 編集

コードの書き方が悪いのではないかと思います。 (というか、基本的にプッシュ通知は「ブラウザJavaScript内から」行うものではないです。ブラウザ内の処理はブラウザを開いていないと行えませんので、「いつでも送信できる」プッシュ通知のメリットを活かすことができません)
rtya

2021/08/16 02:46

>というか、プッシュ通知は「ブラウザJavaScript内から」行うものではないです どういうことですか? 詳しく教えてください プッシュ通知は「ブラウザJavaScript内から」行うものではない なら、 なぜJavaScriptで存在してるんですか?
rtya

2021/08/16 02:47

>ブラウザ内の処理はブラウザを開いていないと行えませんので、「いつでも送信できる」プッシュ通知のメリットを活かすことができません) JavaScriptのプッシュ通知は使い道がない、ってことでいいですか?
maisumakun

2021/08/16 02:47

> プッシュ通知は「ブラウザJavaScript内から」行うものではない なら、 なぜJavaScriptで存在してるんですか? プッシュ通知の受信設定はJavaScriptから行いますが、実際の送信は(実用的には)他の手段を使います。
rtya

2021/08/16 02:48

JavaScript→ブラウザを開いていれば他のタブを開いていても通知が届く(PC) その他→メール配信サービスのようにブラウザを開いていなくても届く
maisumakun

2021/08/16 02:50

> JavaScript→ブラウザを開いていれば他のタブを開いていても通知が届く(PC) 違います。ブラウザを開かなくても届くように、JavaScriptで「セット」することは可能です。
maisumakun

2021/08/16 02:51

> JavaScriptのプッシュ通知は使い道がない、ってことでいいですか? ブラウザJavaScriptから「送信する」のでは、「ブラウザを開いてなくても通知できる」というメリットを享受することはできない、というだけです。
rtya

2021/08/16 02:52

私が出したコードはセットはされるが、送受信は違うということですか?
rtya

2021/08/16 02:53

どうしたら望んでる通知が実現できますか? JavaScript単体では無理ってことですか?
maisumakun

2021/08/16 02:55

> どうしたら望んでる通知が実現できますか? 希望は「とりあえず通知が動くのを見たい」ということですか?それとも、「ブラウザを止めていても通知を表示したい」ということですか?
maisumakun

2021/08/16 02:56 編集

> 私が出したコードはセットはされるが、送受信は違うということですか? Promiseを受け取っていないので、セットだけで考えたとしても正しく動作していない状況です。 (あと、プッシュ通知を正しく動作させるには、HTTPS環境が必須ですが、それは用意していますか?)
rtya

2021/08/16 02:55

ブラウザを開かずに通知メッセージを表示させることです
rtya

2021/08/16 02:56

公式のコードです 私が手を加えたものではありません。 正しく動作していないなんてあるんですか?
maisumakun

2021/08/16 02:57

> ブラウザを開かずに通知メッセージを表示させることです でしたら、ブラウザ内JavaScript「だけ」では実現できません。サーバサイドから送信を行う必要があります。
maisumakun

2021/08/16 02:58 編集

> 公式のコードです 私が手を加えたものではありません。 どこにありましたか?(本当に「公式」ナノカが疑問です)
rtya

2021/08/16 02:57

PHPからできるんですか?
maisumakun

2021/08/16 02:59

let promise = Notification.requestPermission();なんて行は、元のコードにはないです。
rtya

2021/08/16 02:59

サーバーサイドから送る実例があれば教えて下さい
rtya

2021/08/16 03:00

let promise = Notification.requestPermission();は通知を許可するかどうかの確認を出すものです それを付けなければ動かせません
maisumakun

2021/08/16 03:03

> それを付けなければ動かせません 先頭にあるのはおかしいです(元のコードでも、必要条件をチェックしてからrequestPermissionを行っています)。 HTTPS環境で実行していますか?
rtya

2021/08/16 03:04

HTTPS環境ですよ? それがあろうがなかろうが 一体何が変わるんですか?
maisumakun

2021/08/16 03:05

ブラウザは何を使っていますか?
rtya

2021/08/16 03:05

最後に書くべきでした
rtya

2021/08/16 03:06

Firefoxです 通知は届きますよ ブラウザを開いていれば、ですが。 開いてなくて届くやり方が聞きたいんですが
rtya

2021/08/16 03:08

というか、絶対無理ですよね? new Notification("Hi there!"); これはブラウザを開いてないと実行できないし。 公式でも無理じゃないですか。
maisumakun

2021/08/16 03:08

> 通知は届きますよ ブラウザを開いていれば、ですが。 そうだったのですね、失礼しました。
rtya

2021/08/16 03:10

ですので 私の言う認識であってますか JavaScript→ブラウザを開いていれば他のタブを開いていても通知が届く(PC) その他→メール配信サービスのようにブラウザを開いていなくても届く
maisumakun

2021/08/16 03:11

> これはブラウザを開いてないと実行できないし。 いえ、ブラウザを実行していなくても実行されるJavaScriptとして「Service Worker」があります。
rtya

2021/08/16 03:13

ブラウザプッシュ通知はサーバー側からのタイミング送れない! 任意のタイミング送れない、どういう利用価値があるのか意味不明!
maisumakun

2021/08/16 03:14

> ブラウザプッシュ通知はサーバー側からのタイミング送れない! そんなことはありません。
rtya

2021/08/16 03:14

Service Workerの簡略化がNotification - Web APIだと思ってたんですが違いますか?
rtya

2021/08/16 03:16

>サーバー側からのタイミング送れない! >そんなことはありません。 じゃ、どうやるのか教えてもらえませんか?
maisumakun

2021/08/16 03:16

> Service Workerの簡略化がNotification - Web APIだと思ってたんですが違いますか? 違います。
rtya

2021/08/16 03:17

↑後だしでしょ!ずるいよ! >質問者さんが触ってみた Notification は、通知を表示するためだけのAPIであり、「プッシュ通知」ではありません。 こんな指摘しましたか?
rtya

2021/08/16 03:26

一緒だと思ってたんでしょう!答えてください。
maisumakun

2021/08/16 03:27 編集

> 一緒だと思ってたんでしょう!答えてください。 質問も「ブラウザプッシュ通知」としていたので、その枠組で回答していました。
rtya

2021/08/16 03:33

そうですか、残念ですがベストアンサーはあげられません ご了承ください
maisumakun

2021/08/16 03:34

> 残念ですがベストアンサーはあげられません 別に求めてもいません。
rtya

2021/08/16 03:35

その捨てセリフはなんなんですか? やめてください
maisumakun

2021/08/16 03:39

> その捨てセリフはなんなんですか? やめてください 返信をしただけです。
rtya

2021/08/16 03:41

求めてないんじゃなくて、自分が知らなかっただけでしょ? ちゃんと受け止めてもらえませんか? お願いします、ゴールドユーザーの価値が下がります
maisumakun

2021/08/16 03:47

> 求めてないんじゃなくて、自分が知らなかっただけでしょ? その2つは両立するかと思います。実際、回答中に新たな知見が得られることも、そう珍しくはないです。
maisumakun

2021/08/16 03:47

> ちゃんと受け止めてもらえませんか? 「rtyaさんが求める形のもの」を提供できる自信はないです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問