WebアプリケーションはどのようにしてiOSデバイスにプッシュ通知を送信できますか?[閉まっている]


121

私はウェブアプリに取り組んでいます。新しいコンテンツがあるときにiOSユーザーにプッシュ通知を送信するにはどうすればよいですか?


今何の通知?


音で検索していますか?次に、携帯電話のロックモード中に音で通知したい場合; その名前はSpecific Pushです。
mrbengi

回答:


93

具体的には、WebアプリケーションがiPhoneなどのモバイルデバイスにプッシュ通知を送信するためには、モバイルデバイスが特定のアプリケーションのプッシュ通知を受信するように登録されている必要があります。プッシュ通知の登録は、ネイティブアプリを通じて行われ、ネイティブアプリを通じてのみ実行できます。ネイティブアプリがプッシュ通知に登録されると、承認トークンをサーバーに送信できます。これをネイティブクライアントのプロビジョニングに使用される証明書と組み合わせて使用​​し、モバイルデバイスにプッシュ通知を送信できます。

別の回答で指定されているように、1つのオプションは、Webアプリケーションをネイティブアプリケーションに「ラップ」することです。つまり、Webアプリケーションを表示しているユーザーに基本的にUIWebView(iPhone開発用)を表示するネイティブアプリケーションを作成するということです。これはネイティブブラウザーと同じように機能しますが、ネイティブコントロールを使用してプッシュ通知を登録する機能を追加できます。

iPhoneでプッシュメッセージングがどのように機能するかについてかなり良い情報を提供しているので、Appleのプッシュ通知ドキュメントを確認することは有益です。

Peter Hoseyが提供する以下のリンクを参照してください。


この回答をありがとう、私は同じことを探していました。これは、「apple-mobile-web-app-capable」というメタタグを追加した場合にも当てはまりますか?
Mark Knol 2012年

1
これは、プッシュ通知が起こるか変化しているdevelopers.google.com/web/updates/2015/03/...
ダニエル・ルカCleanUnicorn

1
2016年2月現在、FF、Chrome、Safariはwebappからのプッシュに登録できます。
Yvon Huynh、2016

9
これは2016年には当てはまりません。Webアプリから通知を送信できます。以下の私の答えを読んでください。
collimarco 2016年

しかし、webviewはうまく機能せず、一部の機能が欠落していて、safariよりも多くのバグがあります
Black

46

いいえ、ネイティブiOSアプリケーションのみがプッシュ通知をサポートしています。

更新:
Mac OS X 10.9およびSafari 7のWebサイトでもプッシュ通知を送信できるようになりましたが、これはiOSにはまだ当てはまりません。Webサイトの通知プログラミングガイドを読みます。WWDC 2013セッション614もご覧ください。


1
Maverix&Safari 7でできるようになりました!
themihai 2013


Safari 7は確実にこれらのプッシュ通知を受信でき、Webアプリが実行しているバックエンドに応じて、これを可能にするサービスがいくつかあります:pushwoosh.compushmonkey.launchrock.comまたは、独自のサーバーをデプロイできます。これは、 iOSプッシュ通知。
Tudor

これはSpecific Pushと呼ばれているそうです。
mrbengi

3
OPの質問は、特にiOSに関するものです。これに対するOSX / macOSサポートは素晴らしいですが、プッシュ通知は、ネイティブアプリからのiOSでのみ機能します。
squarecandy 2016

44

iOS(iOS 10以降)ではまだサポートされいませんが、WebサイトはPush APIを使用してFirefoxおよびChrome(デスクトップ/ Android)にプッシュ通知を送信できます

プッシュAPIは、メッセージを表示するために古いWeb通知と組み合わせて使用​​されます。利点は、プッシュAPIはService Worker(ブラウザーによって登録され、後でバックグラウンドで実行できるスクリプト)に基づいて構築されているため、ユーザーがWebサイトを閲覧していないときでも通知を配信できることです。ユーザーがウェブサイトを離れた場合)。

通知を送信するプロセスには、次のものが含まれます。

  1. ユーザーがWebサイトにアクセスする(HTTPSで保護する必要があります):プッシュ通知を表示する許可を求め、Service Worker(プッシュ通知を受信したときに実行されるスクリプト)を登録します。
  2. ユーザーが権限を付与している場合、サーバーに送信して保存する必要があるデバイストークン(エンドポイント)を読み取ることができます
  3. これで、ユーザーに通知を送信できます。サーバーはエンドポイント(デバイストークンを含むURL)にHTTP POSTリクエストを送信します。リクエストを受信するサーバーは、ブラウザーの製造元(Google、Mozillaなど)が所有しています。ブラウザーは常にサーバーに接続されており、着信通​​知を読み取ることができます。
  4. ユーザーブラウザーが通知を受信すると、イベントの管理、サーバーからの通知データの取得、ユーザーへの通知の表示を担当するService Workerを実行します

プッシュAPIは現在、デスクトップ、AndroidChromeFirefoxOperaでサポートされています

APNを使用してApple / Safariデスクトップにプッシュ通知を送信することもできます。アプローチは似ていますが、多くの複雑さ(アップル開発者証明書、プッシュパッケージ、APNへの低レベルTCP接続)があります。

自分でプッシュ通知を実装する場合は、これらのチュートリアルから始めます。

ソリューションのドロップを探しているなら、私が作成したサービスであるPushpadをお勧めします。

アップデート(2017年9月):AppleはWebKit(status)のService Workerの開発を開始しました。Service WorkerはWebプッシュの基本テクノロジーであるため、これは大きな前進です。


3
iOS 10(パブリックベータ)以降、Mobile Safariはプッシュ通知をサポートしていません。
ロビン・ドーティ

1
それはあなたの答えの訂正ではなく、私はSafari Mobileサポートを探している人々に情報を提供していました。いつかはプッシュ通知をサポートするかもしれませんが、私が述べたリリースの時点ではサポートしていません。
ロビン・ドーティ

14
Safariは新しいInternet Explorerです。アップルは新しいマイクロソフトです。Ugh ....
Costa

1
@Kevincoreいいえ、残念ながら更新はありません。iOS上のSafariは、現時点ではWebプッシュをサポートしていません(2017年5月)。
collimarco

1
Appleに少し圧力をかけてみましょう。コピーしてAppleバグ追跡に送信できる段落いくつか書いて、AppleにiOSにWebプッシュを追加するように依頼します。
collimarco 2017年

10

Google Chromeは、プッシュ通知のW3C標準をサポートするようになりました。

http://www.w3.org/TR/push-api/


ここでは徹底したチュートリアルです:developers.google.com/web/updates/2015/03/...
ayke

1
これにはiOS向けChromeが含まれますか?(元の質問はiOSに固有でした)
Simon East

現在のところ、iOSはまだありません。ネイティブアプリを使用する必要があります:\
rogerdpack 2017年

9

独自のネイティブアプリを作成したくない場合は、プッシュオーバーを使用できます:https ://pushover.net/


9

実際に。これは、あなたが... OS X(マーベリックス)の最新バージョンでは、あなたのブランドの新しい心であるCANデスクトップにWebページからプッシュ通知を送信します。ただし、ドキュメントによれば、iPhoneではありません。

Note: This document pertains to OS X only. Notifications for websites do not appear on iOS.

現在、Appleは2種類のプッシュ通知を許可する予定です。OSXウェブサイトのプッシュ通知とローカル通知です。

ここで明らかなハードルは、これがPCでは機能せず、Androidプッシュ通知を実行できないことです。

さらに、Snow Leapordと同じくらい古いバージョンでも、Webサイトが開いていてアクティブである限り、Webサイトからプッシュ通知を送信できます。新しいMavericks OSでは、サイトが開かれていない場合でも、プッシュ通知を送信するためのアクセス許可をサイトに既に与えていると想定して、プッシュ通知を許可します。

アップルの口から:

OS X v10.9以降では、Appleプッシュ通知サービス(APN)を使用して、OS X Webサイトプッシュ通知をWebサーバーからOS Xユーザーに直接ディスパッチできます。ローカル通知と混同しないでください。プッシュ通知は、WebサイトまたはユーザーのWebブラウザーが開いているかどうかに関係なくユーザーに到達できます…

プッシュ通知をWebサイトに統合するには、最初にユーザーが通知の受信を選択できるようにするインターフェイスを提示します。ユーザーが同意すると、SafariはWebサイトにアクセスして、プッシュパッケージと呼ばれるファイルの形式で資格情報を要求します。プッシュパッケージには、OS X全体で使用される通知アセットと、設定したWebサービスとの通信に使用されるデータも含まれています。プッシュパッケージが有効な場合、デバイストークンと呼ばれる、デバイス上のユーザーの一意の識別子を受け取ります。このデバイストークンとメッセージまたはペイロードの組み合わせをAPNに送信すると、ユーザーは通知を受け取ります。

通知を受け取ると、ユーザーはそれをクリックして、ユーザーのデフォルトのブラウザーで選択したWebページを開くことができます。

注:APNで復習が必要な場合は、ローカルおよびプッシュ通知プログラミングガイドの「Appleプッシュ通知サービス」の章をお読みください。このドキュメントはiOSおよびOS Xのプッシュ通知に固有のものですが、プッシュ通知サービスのパラダイムは引き続き適用されます。


5
これは、うまくいけば、iOS 8または9によるWebベースのプッシュ通知が表示されることを意味します。
Travis

5
開発者ドキュメントは、ウェブ通知は現在iOSには適用されないことを明確に述べています。最初の段落の説明と同じです。
ダニエルセラーズ

1
アップルを知っていると、iOSの1つのバージョンでそれを許可し、次のバージョンでそれを削除します
Alexander Derck

7

いいえ、Webアプリケーションがプッシュ通知を受信する方法はありません。あなたができることはプッシュ通知を持つネイティブアプリにあなたのウェブアプリをラップすることです。


「webappをネイティブアプリにラップする」とはどういう意味ですか?
フランキー、

1
フランキー:ええと、UIWebViewを表示してサイトを読み込むネイティブアプリだけです。これにより、Webアプリを電話のネイティブアプリとして使用できます。
JustSid

だから私はxcodeでこれがネイティブアプリの「WindowBase Aplication」になると思いますよね?
フランキー、

Maverix&Safari 7でできるようになりました!
themihai 2013

1
@DanDascalescuなぜ私は?まだはiOSでは不可能です。それが問題でした。答えは間違っていません。
JustSid

2

W3Cは2010年に通知を実装するワーキンググループを開始しました:http :
//www.w3.org/2010/web-notifications/

このワーキンググループは、これらのメカニズムをWebアプリケーションに公開するAPIを開発します。たとえば、Webベースの電子メールクライアントやインスタントメッセージクライアントを作成するWeb開発者は、Webアプリケーションの動作をオペレーティングシステムの通知機能とより密接に統合できます。エンドユーザーの。

最後に、特定のWebサイトが開いている場合にのみ機能するため、結果は悪い冗談のようになります。http//alxgbsn.co.uk/notify.js/

すべてのタブが閉じられている場合は、ブラウザーがバックグラウンドで実行されているときにブラウザーが通知を要求できるようにするために、プッシュURLを追加する可能性を実装できなかったと思います。


2

HTML5 Websocketを使用して、独自のプッシュメッセージを導入できます。ウィキペディアから:

「クライアント側では、WebSocketはFirefox 4、Google Chrome 4、Opera 11、Safari 5、およびiOS 4.2のモバイルバージョンのSafariに実装されていました。また、OS7のBlackBerry BrowserはWebSocketをサポートしています。」

これを行うには、メッセージをクライアントにプッシュするための独自のプロバイダーサーバーが必要です。
APN(Apple Push Notification)またはC2DM(Cloud to Device Message)を使用する場合は、オンラインストアからダウンロードする必要のあるネイティブアプリケーションが必要です。


6
まあ、それはブラウザーが開かれ、webappページでのみ機能します。プッシュ通知とは異なり、アプリケーションがオフの場合でも機能します。
Hagai L 2013

2

Pushbulletはこれの優れた代替手段です。

ただし、ユーザーはPushbulletアカウントとアプリ(iOS、Android)またはプラグイン(Chrome、Opera、Firefox、Windows)をインストールする必要があります。

Pushbulletアプリを作成してAPIを使用し、oAuth2を使用してアプリケーションのユーザーをPushbulletユーザーに接続できます。

ライブラリを使用すると、はるかに簡単になります。PHPの場合は、ivkos / Pushbullet-for-PHPをお勧めします


1

Xtify Webプッシュ通知を確認してください。http://getreactor.xtify.com/このツールを使用すると、コンテンツをWebページにプッシュし、訪問者をターゲットにするだけでなく、ブラウザのDOMイベントに基づいてメッセージをトリガーできます。特にモバイルを念頭に置いて設計されています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.