Following this example,我看到PWA如何打開網址,但我該如何使用推送通知,啓動應用程序本身?不是在瀏覽器中,而是全屏版本的PWA。如何通過點擊推送通知來啓動PWA(漸進式Web應用程序)?
回答
這是在Chrome瀏覽器怪癖。
如果用戶添加一個web應用程序的主屏幕與當過用戶點擊web應用程序的圖標將沒有地址欄打開他們的表現「獨立」。
當收到推送信息並且打開了相同的網絡應用程序時,如果用戶從主屏幕圖標(最近10天)「最近」打開了Web應用程序,則不會顯示URL欄。如果用戶在該時間段內沒有使用主圖標,則會打開通知點擊,並顯示URL欄。
更多信息,請參閱在Chrome這個問題:https://bugs.chromium.org/p/chromium/issues/detail?id=541711
具體做法是:
的Web應用程序必須添加到主屏幕,能夠在 獨立模式下開啓,並從已被打開主屏幕在 的最後十天內。如果沒有滿足這些條件中的任何一個,則 通知將回退到現有行爲。
值得注意的是,PWA vs Browser本身並不是正確的思維方式。您總是在瀏覽器中啓動,只是以不同的模式,例如「獨立」與「瀏覽器」。
PWA(Progressive Web Apps)在很大程度上是一個術語,用於描述使用一組API來爲新的Web技術(即服務工作者,推送,Web應用程序清單等)提供良好的用戶體驗。
從傑克阿奇博爾德的emojoy演示摘自:
self.addEventListener('notificationclick', event => {
const rootUrl = new URL('/', location).href;
event.notification.close();
// Enumerate windows, and call window.focus(), or open a new one.
event.waitUntil(
clients.matchAll().then(matchedClients => {
for (let client of matchedClients) {
if (client.url === rootUrl) {
return client.focus();
}
}
return clients.openWindow("/");
})
);
});
,謝謝,我只是嘗試應用。我會收到兩封有關任何新消息的通知,其中一封包含其他信息,另一封聲明網站已在後臺更新。 – jasan
我收到單個通知「收到新聊天」並點擊它會打開我以前安裝時添加到主屏幕時的PWA。 請注意,如果您打開了chrome選項卡,它將關注該選項卡。 –
當您收到「網站已在後臺更新」,這意味着「推送」事件代碼中存在錯誤,即它們在承諾傳遞給event.waitUntil之前未顯示通知。 –
- 1. 通過Android推送通知啓動應用程序
- 2. 通過推送通知啓動調試應用程序
- 3. 推送通知web應用程序
- 4. Android Firebase推送通知在點擊後重新啓動應用程序
- 5. Android,使用parse.com推送通知,自動啓動應用程序
- 6. 漸進式網絡應用的離線推送通知
- 7. 通過UISwitch啓用推送通知
- 8. 通過單擊咆哮通知啓動應用程序
- 9. 使應用程序不能打開推送通知點擊
- 10. 使用推送通知啓動時應用程序崩潰
- 11. 以編程方式從Azure Web服務啓動推送通知?
- 12. PWA的推送通知圖標
- 13. 使用漸進式Web應用程序(PWA)準則會帶來哪些好處?
- 14. 如何使用照片應用程序進行推送通知
- 15. iOS 5橫幅推送通知消失,用戶點擊應用程序圖標啓動應用程序
- 16. Wp7推送通知啓動我的應用程序
- 17. Air iOS/Android推送通知記得應用程序啓動
- 18. 從推送通知的警報視圖啓動應用程序
- 19. Iphone4的推送通知和啓動應用程序
- 20. 推送通知每次在應用程序啓動時顯示
- 21. 在推送通知期間啓動待機應用程序
- 22. 如何在用戶點擊推送通知時禁用打開應用程序
- 23. 檢查應用程序是否通過Toast通知面板啓動點擊
- 24. 通過Web UI調度推送通知
- 25. 如何通過代碼發送推送通知Firebase直接從應用程序
- 26. 應用程序更新推送通知
- 27. 推送iPhone應用程序的通知
- 28. iPhone應用程序推送通知
- 29. iOS應用程序推送通知
- 30. Android應用程序的推送通知
我已成功將應用程序添加到主屏幕並從主屏幕啓動應用程序,但推送通知單擊始終以瀏覽器模式打開。任何想法或建議? – jasan
我唯一能想到的就是檢查Chrome版本,我假設你已經在你的Web應用清單中設置了獨立版本? –