웹 애플리케이션은 어떻게 iOS 장치에 푸시 알림을 보낼 수 있습니까? [닫은]


121

웹 앱을 만들고 있습니다. 새 콘텐츠가있을 때 iOS 사용자에게 푸시 알림을 보내려면 어떻게해야합니까?


지금 무슨 알림?


소리로 찾고 있습니까? 그런 다음 휴대 전화 잠금 모드에서 소리 알림을 원하면; 그 이름은 특정 푸시입니다.
mrbengi

답변:


93

구체적으로 말하면, 웹 애플리케이션이 iPhone과 같은 모바일 장치에 푸시 알림을 보내려면 모바일 장치가 특정 애플리케이션에 대한 푸시 알림을 수신하도록 등록되어 있어야합니다. 푸시 알림 등록은 기본 앱을 통해 이루어지며 기본 앱을 통해서만 수행 할 수 있습니다. 푸시 알림을 위해 네이티브 앱이 등록되면 네이티브 클라이언트를 프로비저닝하는 데 사용되는 인증서와 함께 사용할 수있는 인증 토큰을 서버로 보내 모바일 장치로 푸시 알림을 보낼 수 있습니다.

다른 답변에서 지정한 것처럼 한 가지 옵션은 웹 응용 프로그램을 기본 응용 프로그램으로 '래핑'하는 것입니다. 즉, 웹 애플리케이션을 보여주는 사용자에게 기본적으로 UIWebView (iPhone dev 용)를 제공하는 네이티브 애플리케이션을 생성합니다. 이 기능은 기본 브라우저와 거의 동일한 방식으로 작동하지만 기본 컨트롤을 사용하여 푸시 알림을 등록하는 기능을 추가 할 수 있습니다.

iPhone에서 푸시 메시징이 작동하는 방식에 대한 꽤 좋은 정보를 제공하므로 Apple의 푸시 알림 문서를 검토하는 것이 좋습니다.

Peter Hosey가 제공 한 다음 링크를 참조하십시오.


이 답변에 감사드립니다. 저도 같은 것을 찾고있었습니다. 메타 태그 'apple-mobile-web-app-capable'을 추가 한 경우에도 적용됩니까?
Mark Knol 2012

1
이로 인해 푸시 알림이 발생하는 방식이 변경됩니다. developers.google.com/web/updates/2015/03/…
Daniel Luca CleanUnicorn

1
2016 년 2 월 현재 FF, Chrome 및 Safari는 webapp에서 푸시를 등록 할 수 있습니다.
이본 후인

9
2016 년에는 더 이상 사실이 아니며 웹 앱에서 알림을 보낼 수 있습니다. 아래 내 대답을 읽으십시오.
collimarco

그러나 webview가 잘 작동하지 않고 일부 기능이 누락되고 safari보다 더 많은 버그가 있습니다
Black

46

아니요, 기본 iOS 애플리케이션 만 푸시 알림을 지원합니다.

업데이트 : 이제
Mac OS X 10.9 및 Safari 7 웹 사이트에서도 푸시 알림을 보낼 수 있지만 iOS에는 여전히 적용되지 않습니다. 웹 사이트 용 알림 프로그래밍 가이드를 읽어 보세요. WWDC 2013 세션 614 도 확인하십시오 .


1
이제 Maverix 및 Safari 7에서 할 수 있습니다!
themihai aug


Safari 7은 확실히 이러한 푸시 알림을 수신 할 수 있으며 웹 앱이 실행중인 백엔드에 따라이를 허용하는 몇 가지 서비스가 있습니다. pushwoosh.com , pushmonkey.launchrock.com 또는 다음과 매우 유사한 자체 서버를 배포 할 수 있습니다. iOS 푸시 알림.
Tudor

이것을 특정 푸시라고 들었습니다.
mrbengi

3
OP 질문은 특히 iOS에 관한 것입니다. 이에 대한 OSX / macOS 지원은 좋지만 푸시 알림은 기본 앱의 iOS에서만 작동합니다.
squarecandy

44

하지만 아직 iOS에서 지원되지 않습니다 (아이폰 OS (10) 등), 웹 사이트는 파이어 폭스와 크롬 (데스크탑 / 안드로이드)로 푸시 알림을 보낼 수있는 푸시 API .

Push API는 메시지를 표시하기 위해 이전 웹 알림 과 함께 사용됩니다 . 장점은 Push API를 사용하면 사용자가 웹 사이트를 서핑하지 않을 때에도 알림을 전달할 수 있다는 것입니다. 왜냐하면 서비스 워커 (브라우저에 의해 등록되고 나중에 백그라운드에서 실행될 수있는 스크립트)를 기반으로하기 때문입니다. 귀하의 사용자가 귀하의 웹 사이트를 떠났습니다).

알림을 보내는 프로세스에는 다음이 포함됩니다.

  1. 사용자가 웹 사이트를 방문 (HTTPS를 통해 보안되어야 함) : 푸시 알림을 표시 할 권한을 요청하고 서비스 워커를 등록합니다 (푸시 알림이 수신되면 실행되는 스크립트).
  2. 사용자가 권한을 부여한 경우 서버로 전송하여 저장해야하는 디바이스 토큰 (엔드 포인트)을 읽을 수 있습니다.
  3. 이제 사용자에게 알림을 보낼 수 있습니다. 서버가 엔드 포인트 (장치 토큰이 포함 된 URL)에 HTTP POST 요청을 보냅니다. 요청을 수신하는 서버는 브라우저 제조업체 (예 : Google, Mozilla)가 소유합니다. 브라우저는 지속적으로 연결되어 수신 알림을 읽을 수 있습니다.
  4. 사용자 브라우저가 알림을 수신하면 이벤트 관리를 담당하는 서비스 워커를 실행하고 서버에서 알림 데이터를 검색하여 사용자에게 알림을 표시합니다.

Push API는 현재 데스크톱과 Android 에서 Chrome , FirefoxOpera를 통해 지원됩니다 .

APN을 사용하여 Apple / Safari 데스크톱에 푸시 알림을 보낼 수도 있습니다 . 접근 방식은 비슷하지만 많은 복잡성이 있습니다 (애플 개발자 인증서, 푸시 패키지, APN에 대한 저수준 TCP 연결).

푸시 알림을 직접 구현하려면 다음 자습서로 시작하십시오.

솔루션 드롭을 찾고 있다면 내가 구축 한 서비스 인 Pushpad를 제안 할 것 입니다.

업데이트 (2017 년 9 월) : Apple은 WebKit 용 서비스 워커 개발을 시작했습니다 ( status ). 서비스 워커는 웹 푸시를위한 기본 기술이므로 이것은 큰 진전입니다.


3
iOS 10 (공개 베타)부터 Mobile Safari는 푸시 알림을 지원하지 않습니다.
Robin Daugherty

1
귀하의 답변을 수정 한 것이 아니라 Safari Mobile 지원을 찾는 사람들에게 정보를 제공했습니다. 언젠가는 푸시 알림을 지원할 수도 있지만 제가 언급 한 릴리스에서는 지원하지 않습니다.
Robin Daugherty

14
Safari는 새로운 Internet Explorer입니다. Apple은 새로운 Microsoft입니다. 윽 ...
코스타

1
@Kevincore 아니요, 안타깝게도 업데이트가 없습니다. iOS의 Safari는 현재 웹 푸시를 지원하지 않습니다 (2017 년 5 월).
collimarco

1
Apple에 압력을 가해 보겠습니다 . Apple Bug Tracker에 복사하여 제출할 수 있는 단락 을 작성하여 Apple에 iOS에 웹 푸시를 추가하도록 요청했습니다.
collimarco



9

사실 .. 이것은 완전히 새로운 마음입니다 .. 최신 버전의 OS X (Mavericks) 에서는 웹 페이지에서 데스크탑으로 푸시 알림을 보낼 있습니다. 그러나 문서에 따르면 iPhone이 아닙니다.

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

현재 Apple은 OS X 웹 사이트 푸시 알림과 로컬 알림의 두 가지 푸시 알림을 허용 할 계획입니다.

여기서 명백한 장애물은 이것이 PC에서 작동하지 않으며 Android 푸시 알림을 허용하지 않는다는 것입니다.

또한 실제로 Snow Leapord만큼 오래된 버전을 사용하여 웹 사이트가 열려 있고 활성화되어있는 한 웹 사이트에서 푸시 알림을 보낼 수 있습니다. 새로운 Mavericks OS는 사이트가 열리지 않더라도 푸시 알림을 보낼 수있는 권한을 이미 부여했다고 가정하고 푸시 알림을 허용합니다.

Apple의 입에서 :

OS X v10.9 이상에서는 APN (Apple 푸시 알림 서비스)을 사용하여 웹 서버에서 OS X 사용자에게 직접 OS X 웹 사이트 푸시 알림을 보낼 수 있습니다. 로컬 알림과 혼동하지 않도록, 푸시 알림은 웹 사이트 또는 웹 브라우저가 열려 있는지 여부에 관계없이 사용자에게 도달 할 수 있습니다.

웹 사이트에 푸시 알림을 통합하려면 먼저 사용자가 알림 수신을 선택할 수있는 인터페이스를 제공해야합니다. 사용자가 동의하면 Safari는 웹 사이트에 접속하여 푸시 패키지라는 파일 형식의 자격 증명을 요청합니다. 푸시 패키지에는 OS X 전체에서 사용되는 알림 자산과 사용자가 구성한 웹 서비스와 통신하는 데 사용되는 데이터도 포함되어 있습니다. 푸시 패키지가 유효하면 장치 토큰이라고하는 장치의 사용자에 대한 고유 식별자를받습니다. 이 장치 토큰과 메시지 또는 페이로드의 조합을 APN에 보낼 때 사용자는 알림을받습니다.

알림을 받으면 사용자는이를 클릭하여 사용자의 기본 브라우저에서 선택한 웹 페이지를 열 수 있습니다.

참고 : APN에 대한 복습이 필요한 경우 로컬 및 푸시 알림 프로그래밍 가이드의 "Apple 푸시 알림 서비스"장을 읽으십시오. 이 문서는 iOS 및 OS X 푸시 알림에만 해당되지만 푸시 알림 서비스의 패러다임은 여전히 ​​적용됩니다.


5
이것은 iOS 8 또는 9에서 웹 기반 푸시 알림을 보게 될 것임을 의미합니다.
Travis

5
개발자 문서에는 웹 알림이 현재 iOS에 적용되지 않는다고 명시되어 있습니다. 첫 번째 단락에 대한 설명과 같습니다.
Daniel Sellers

1
그들은 아이폰 OS의 한 버전을 허용하고 다음을 위해 그것을 제거 할 수 있습니다 사과를 아는
알렉산더 Derck

6

아니요, 웹앱이 푸시 알림을받을 수있는 방법이 없습니다. 할 수있는 일은 웹앱을 푸시 알림이있는 네이티브 앱으로 래핑하는 것입니다.


"웹앱을 기본 앱으로 래핑"이라고하면 무슨 뜻입니까?
Frankie

1
Frankie : 글쎄요, UIWebView를 표시하고 사이트를로드하는 기본 앱입니다. 이를 통해 웹 앱을 전화기의 기본 앱으로 사용할 수 있습니다.
JustSid

그래서 xcode에서 이것이 네이티브 앱의 "WindowBase Aplication"이 될 것이라고 생각합니다.
Frankie

이제 Maverix 및 Safari 7에서 할 수 있습니다!
themihai

1
@DanDascalescu 내가 왜? iOS에서는 여전히 가능 하지 않습니다 . 대답은 틀리지 않습니다.
JustSid

2

W3C는 2010 년에 알림을 구현하기위한 작업 그룹을 시작했습니다.
http://www.w3.org/2010/web-notifications/

이 워킹 그룹은 이러한 메커니즘을 웹 응용 프로그램에 노출하는 API를 개발합니다. 예를 들어 웹 기반 전자 메일 클라이언트와 인스턴트 메시징 클라이언트를 만드는 웹 개발자는 웹 응용 프로그램 동작을 운영 체제의 알림 기능과 더 밀접하게 통합 할 수 있습니다. 최종 사용자의.

마지막으로 결과는 특정 웹 사이트가 열려있는 경우에만 작동하므로 나쁜 농담과 같습니다. 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

2

Pushbullet은이 를위한 훌륭한 대안입니다.

그러나 사용자는 Pushbullet 계정과 앱 (iOS, Android) 또는 플러그인 (Chrome, Opera, Firefox 및 Windows)이 설치되어 있어야합니다.

Pushbullet 앱을 만들어 API 를 사용하고 oAuth2를 사용하여 애플리케이션의 사용자를 Pushbullet 사용자에 연결할 수 있습니다.

라이브러리를 사용하면 훨씬 쉽게 할 수 있습니다. PHP의 경우 ivkos / Pushbullet-for-PHP를 추천 할 수 있습니다.


1

Xtify 웹 푸시 알림을 확인하세요. http://getreactor.xtify.com/ 이 도구를 사용하면 웹 페이지에 콘텐츠를 푸시하고 방문자를 타겟팅하고 브라우저 DOM 이벤트를 기반으로 메시지를 트리거 할 수 있습니다. 모바일을 염두에두고 특별히 설계되었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.