2023년 iOS 16 웹 푸시 알림

iOS에서 Discourse 인스턴스가 더 잘 작동하도록 기다려 온 우리에게, Apple이 오늘 iOS 16에서 웹 푸시 알림 지원을 공식 발표했기 때문에 그날이 가까워진 것 같습니다. iOS 16은 2023년에 출시될 예정입니다.

23개의 좋아요

내일 이에 대한 발표가 있습니다:

구현 방식에 대한 좀 더 자세한 내용은 여기에 있습니다.

https://webkit.org/blog/12824/news-from-wwdc-webkit-features-in-safari-16-beta/

Web Push가 macOS Ventura의 Safari 16에 도입됩니다. 이를 통해 웹사이트와 웹 앱 사용자에게 원격으로 알림을 보내고, Safari가 실행되지 않는 경우에도 해당 알림을 전달할 수 있습니다. 다른 브라우저에서 익숙할 수 있는 웹 표준 조합인 Push APINotifications API, 그리고 Service Worker를 사용합니다.

사용자는 버튼 클릭과 같은 사용자 제스처를 통해 먼저 관심을 표명함으로써 알림에 옵트인합니다. 그런 다음 사이트나 앱이 알림을 보내도록 권한을 부여하라는 프롬프트가 표시됩니다. 사용자는 알림 센터에서 알림을 확인하고 관리할 수 있으며, 알림 설정에서 웹사이트별로 스타일을 사용자 지정하거나 알림을 끌 수 있습니다.

이미 업계 모범 사례를 사용하여 웹 앱이나 웹사이트에 Web Push를 구현했다면, Safari에서 자동으로 작동합니다. 다만, 브라우저 감지를 통해 Safari를 제외했다면 작동하려면 기능 감지(feature detection)로 전환해야 합니다.

Safari의 Web Push는 모든 Mac 및 iOS 기기의 네이티브 푸시를 구동하는 동일한 Apple Push Notification 서비스를 사용합니다. 서버에서 푸시 엔드포인트를 엄격하게 관리하고 있다면, push.apple.com의 모든 서브도메인에서 오는 URL을 허용하도록 설정해야 합니다. Apple Developer Program 멤버일 필요는 없습니다.

iOS 및 iPadOS용 Web Push는 2023년에 기대해 주세요.

macOS Safari는 2013년부터 비표준 웹 푸시 알림을 지원해 왔지만, iOS에서는 이전까지 제대로 작동하지 않았습니다.

이번 발표는 macOS Safari가 Safari 16에서 표준 기반 API로 전환될 것임을 시사하는 것 같으며, 이는 좋은 소식입니다. 하지만 macOS Safari 푸시 알림을 원한다면 이미 오늘 당장 구현할 수 있습니다.

iOS 지원이 진정한 게임 체인저가 될 것입니다.

9개의 좋아요

이 부분에 대해 더 자세한 정보를 제공해 주셔서 감사합니다!

이것이 Discourse 인스턴스에 어떤 영향을 미칠지 혹시 알고 계신가요? 제 추측으로는 사용자가 웹사이트를 홈 화면에 저장하면, 해당 Discourse PWA에서 알림을 받을 수 있게 되는 것 아닌가요? 맞나요?

또한, 이 기능이 DiscourseHub가 포함된 모든 Discourse 인스턴스에 iOS 푸시 알림을 보내는 데에도 사용할 수 있을까요?

1개의 좋아요

아니요, 이 기능은 홈 화면에 설치하거나 "PWA"와는 아무런 관련이 없습니다.

"PWA"는 구글 개발자들이 만든 일종의 마케팅 용어이며, 이 용어는 다음과 같은 기능들의 묶음을 가리킵니다:

  1. 홈 화면에 추가(A2HS)
  2. 오프라인 지원 (오프라인 상태에서도 사이트/앱이 작동하도록 하는 기능)
  3. 네이티브 앱과 유사한 기능 (예전에는 네이티브 앱에만 있던 기능)으로, 푸시, 블루투스, 백그라운드 페치 등이 포함됩니다.

하지만 이러한 기능들은 본질적으로 서로 무관합니다. 다른 기능 없이 이 중 하나만 사용할 수도 있습니다.

  • 모든 웹 페이지를 홈 화면에 추가할 수 있습니다. A2HS를 위해 웹 페이지가 오프라인 지원이나 네이티브 앱과 유사한 기능을 갖추지 않아도 됩니다. (실제로는 홈 화면에 북마크를 추가하는 것일 뿐이며, A2HS가 하는 일은 이것뿐입니다.)
  • A2HS를 사용하든 하지 않든, 웹사이트에 오프라인 지원을 활성화할 수 있습니다.
  • A2HS나 오프라인 지원을 요구하는 네이티브 앱과 유사한 기능은 없습니다. WebBluetooth는 사용자가 “권한” 대화 상자를 수락하기만 하면 어떤 웹 페이지에서도 작동합니다. 활성화하기 위해 A2HS를 사용할 필요는 없습니다.

오늘날 구글 크롬과 현재 출시된 macOS Safari 15 버전에서는 웹사이트가 작은 요청 대화 상자를 팝업하여 푸시 알림에 대한 권한을 요청할 수 있습니다. (이것은 “클릭” 핸들러 또는 드래그나 스와이프와 같은 유사한 "사용자 제스처"에 대한 응답으로 수행해야 합니다.) 가끔 뉴스 사이트에서 그러한 팝업을 본 적이 있을 것입니다.

애플의 블로그 게시물은 Safari 16에서 권한 프롬프트에 아무런 변화가 없을 것임을 시사합니다:

사용자는 먼저 버튼 클릭과 같은 사용자 제스처로 관심을 표명하여 알림에 옵트인합니다. 그런 다음, 사이트 또는 앱이 알림을 보낼 수 있도록 권한을 부여하라는 프롬프트가 표시됩니다.

이 질문은 혼란스럽습니다. Discourse Hub는 이미 현재 그렇게 하고 있습니다.

2개의 좋아요

아마 제 iPhone의 알림 설정에 문제가 있어서 알림이 도착하지 않았던 것 같습니다:

아, 좋습니다! 그러면 A2HS 없이도 사람들이 알림을 받을 수 있겠네요. 정말 좋습니다. 감사합니다.

아래 메시지에 따르면, Discourse Hub의 iOS 알림은 Discourse 팀이 호스팅하는 Discourse 인스턴스에 대해서만 작동한다고 생각했습니다. 이것이 변경되었나요?

4개의 좋아요

링크하신 스레드에서 설명하듯, Discourse Hub는 Discourse 팀이 호스팅하지 않는 사이트 포함 모든 Discourse 사이트에 대해 푸시 알림을 전송할 수 있습니다. 다만, 실시간(즉시) 알림은 Discourse 팀이 호스팅하는 사이트에 대해서만 제공됩니다. Discourse Hub에 비호스팅 사이트를 추가하면 알림은 수신되지만, 주기가 느려집니다.

그럼에도 불구하고, 질문의 의도가 이와 다르다고 생각하지만 제 오해일 수도 있습니다:

Discourse Hub는 이미 내부의 모든 Discourse 인스턴스 에서 으로 iOS 푸시 알림을 전송할 수 있습니다. 비호스팅 사이트는 알림 전송 속도가 느리지만, 알림은 전송됩니다.

4개의 좋아요

아니, 맞아요. 셀프호스팅 사이트에서 즉시 알림을 보낼 수 있기를 기대하고 있었거든요. 아마도 알림이 지연되는 것이 현재 실제로 전송되고 있는지 아닌지 혼란을 준 것 같습니다.

그래도 iOS 16이 셀프호스팅 Discourse 사이트에서 즉시 알림을 가능하게 해줄 전망이라 기대가 큽니다 :tada:

2개의 좋아요

설명해 주셔서 감사합니다. 저는 폴링을 통해 가져오는 알림보다는 실시간 iOS 푸시 알림에 주로 관심이 있습니다.

2개의 좋아요

"WKWebView"는 네이티브 앱에 웹 브라우저를 임베드하기 위한 Apple의 API입니다. Discourse Hub는 WKWebView를 사용합니다. 제가 아는 한, 현재 존재하는 독점적인 macOS Safari 15 푸시 알림은 macOS의 WKWebView에서 작동하지 않습니다.

Apple은 일부 네이티브 유사 기능을 Safari 앱에서만 사용할 수 있도록 제공하며, WKWebView에서는 사용할 수 없고, 기술적으로 iOS에서 각각 별도의 “Web.app” 프로세스로 실행되는 홈 화면에 저장된 웹 페이지에서도 작동하지 않는 경우가 있습니다.

새로운 표준 Push API가 WKWebView에서 작동할지 아직 알 수 없으며(따라서 Discourse Hub에서 작동할지 알 수 없습니다), 2022년에 출시되지조차 않는 iOS의 WKWebView에서 Push API가 작동할지는 확실히 알 수 없습니다.

그러나 몇 가지 추가 세부 사항은 내일 발표에서 제공될 예정입니다.

참고로, Apple의 전도사(Evangelist)들이 웹에서 네이티브 유사 기능에 대한 추가 질문을 공개적으로 거부하는 것은 일반적인 일입니다.

다음은 Twitter에 제기된 질문입니다:

Apple은 하루 종일 Maximiliano의 질문에 답해 왔지만, 어쨌든 어떤 이유로 질문만 답이 나오지 않았습니다! :grimacing:

6개의 좋아요

와, 이런 수준의 디테일을 정말 좋아해요. 이렇게 자세히 작성해 주셔서 감사합니다. WKWebView와 iOS 홈스크린 앱에서 잘 작동하길 바라봅니다 :crossed_fingers:t2:

그 키노트에 주목했던 사람이 저뿐이 아니어서 기쁩니다. :wink:

왜 iOS 16의 첫 출시 버전과 함께 debut하지 않는지 모르겠지만, 뭐… 상관없겠죠.

macOS에서는 이미 사용 가능하지 않았나요? 저는 수년 전부터 MacRumors에서 Safari 푸시 알림을 받아왔습니다. 아마도 어떤 방식으로든 우회 조치를 사용했던 걸까요? :thinking:

2개의 좋아요

앞서 말했듯이:

1개의 좋아요

아, 죄송합니다. 그 말이 무슨 뜻인지 정확히 파악하지 못했습니다. :see_no_evil:

1개의 좋아요

오늘 영상에는 자세한 내용이 거의 없었습니다. Meet Web Push for Safari - WWDC22 - Videos - Apple Developer

WebKit은 오늘 블로그 게시물을 올렸습니다.

여기서 조금 더 자세한 정보를 확인할 수 있습니다.
https://developer.apple.com/documentation/usernotifications/sending_web_push_notifications_in_safari_and_other_browsers

Safari WWDC 라운지에서 한 사용자인 "John"이 "WKWebView 인스턴스에서 Web Push가 작동합니까?"라고 질문했습니다. Apple의 "Brady E"는 다음과 같이 답변했습니다:

macOS Ventura에서는 Web Push가 Safari 16에서만 지원됩니다.

John은 "iOS/iPadOS는 어떻게 되나요?"라고 추가 질문했고, Brady는 "2023년에 iOS/iPadOS 지원을 기대해 주세요."라고 답했습니다. 즉, 오늘은 iOS 지원에 관한 질문에 답하지 않는 것입니다.

제 생각에는 2023년에 WKWebView에서 Web Push 알림이 작동할 가능성이 극히 낮아 보입니다. 특히 iOS에서는 더욱 그렇습니다. 따라서 Safari Web Push가 Discourse Hub에 직접적인 이점을 제공하지 않을 것으로 예상됩니다.

하지만 물론, Safari Web Push가 도입되면 Discourse Hub 앱의 중요성은 훨씬 줄어들 것입니다.

6개의 좋아요

Apple과 함께 이 문제를 추적해 주시고, 여기에 후속 글을 남겨 주셔서 감사합니다 :folded_hands:t2:

Discourse Hub 애플리케이션에는 몇 가지 다른 이점도 있습니다.

하지만 대체로 말씀하신 대로 맞습니다. 머지않아 일부 기능이 쓸모없게 될 것입니다. CDCK가 이 앱을 완전히 폐기할지 궁금하네요… :thinking:

1개의 좋아요

Its About Time GIFs | Tenor

참고로 모바일 앱을 폐기할 계획은 없습니다. 실시간 알림을 별도로 받는 것과 별개로, 모든 discourse 사이트와 알림을 한곳에 모아서 볼 수 있는 기능은 여전히 매우 유용합니다.

3개의 좋아요

Discourse Hub을 웹에서 PWA로 제공하면 의미가 있을까요?

4개의 좋아요

아쉽게도 현재 로드맵에 포함되어 있지 않지만, 개인적으로 정말 보고 싶은 기능이에요. 정말 좋은 아이디어네요 :slight_smile:

7개의 좋아요