在WWDC 2022開幕演講中,蘋果宣布Web Push功能將改善來(lái)自網(wǎng)頁(yè)應(yīng)用的通知。該功能預(yù)估將于2023年上線,這對(duì)于用戶和開發(fā)者來(lái)說都是一件好事情。事實(shí)上,蘋果對(duì)于第三方應(yīng)用的態(tài)度一直不太穩(wěn)定。
·最初的拒絕
在iPhone誕生之初,史蒂夫·喬布斯反對(duì)在設(shè)備上允許第三方應(yīng)用程序。他希望開發(fā)人員創(chuàng)建可與Safari一起使用的Web應(yīng)用程序。HTML5等Web標(biāo)準(zhǔn)是使其成為應(yīng)用程序可行平臺(tái)的關(guān)鍵。這種類型的標(biāo)記語(yǔ)言構(gòu)建多媒體內(nèi)容和交互元素。
蘋果致力于提高其設(shè)備上的HTML5性能。當(dāng)該公司在2014年推出iOS 8時(shí),它包括WKWebView,這是一個(gè)新的瀏覽器引擎,可以讓混合應(yīng)用程序和原生應(yīng)用程序一樣運(yùn)行。
喬布斯接受HTML5作為Adobe Flash的替代品。當(dāng)他在2010年撰寫“Thoughts on Flash”時(shí),他贊揚(yáng)了Netflix和YouTube等公司轉(zhuǎn)向HTML5視頻內(nèi)容。
蘋果還鼓勵(lì)使用iOS 13的網(wǎng)絡(luò)應(yīng)用程序。它從App Store中清除了低質(zhì)量的應(yīng)用程序,并表示某些特性和功能最好通過Safari提供。
·遭質(zhì)疑
在6月13日發(fā)布的文章,Telegram創(chuàng)始人Durov引用英國(guó)監(jiān)管機(jī)構(gòu)競(jìng)爭(zhēng)與市場(chǎng)管理局(CMA)的評(píng)論,認(rèn)為蘋果將用戶從Web應(yīng)用程序推向帶有本地應(yīng)用程序和規(guī)則的App Store。
CMA對(duì)其長(zhǎng)達(dá)一年的移動(dòng)生態(tài)系統(tǒng)研究的結(jié)論對(duì)iOS上的瀏覽器表示擔(dān)憂,這是應(yīng)用程序爭(zhēng)論的另一個(gè)方面。蘋果禁止第三方瀏覽器引擎,因此iOS和iPadOS上的每個(gè)瀏覽器都是基于該公司的WebKit引擎構(gòu)建的。因此,CMA表示,該公司幾乎沒有動(dòng)力去改進(jìn)WebKit并扼殺消費(fèi)者和企業(yè)。
這樣做的目的是抵御競(jìng)爭(zhēng)對(duì)手,例如Google的Blink瀏覽器引擎。它是開源Chromium項(xiàng)目的一部分,其既定使命是讓網(wǎng)絡(luò)成為訪問信息的焦點(diǎn)。Google瀏覽器在除iOS之外的所有平臺(tái)上都使用Blink。iOS版本的Chrome使用WebKit,這意味著Google被迫跟上蘋果的步伐。
WebKit是開源的,該項(xiàng)目的使命是作為瀏覽器和應(yīng)用程序的通用內(nèi)容引擎。消息說,瀏覽器應(yīng)該堅(jiān)持顯示內(nèi)容而不是應(yīng)用程序。開發(fā)人員想要Web應(yīng)用程序,因?yàn)樗鼈兛梢栽谌魏纹脚_(tái)上運(yùn)行,而不受應(yīng)用商店的規(guī)則和限制。
·面對(duì)質(zhì)疑蘋果的緩慢改進(jìn)
面對(duì)質(zhì)疑,蘋果正在積極改進(jìn),盡管速度很慢。正如6月的主題演講中所揭示的,其操作系統(tǒng)中的網(wǎng)絡(luò)應(yīng)用程序體驗(yàn)將得到改善。加入Apple開發(fā)者計(jì)劃以發(fā)送Web推送通知不是必需的。
該功能要到2023年才會(huì)出現(xiàn),它由Push API、Notifications API和Service Worker組成。Service Worker是一段代表Web域運(yùn)行的JavaScript代碼,與打開的瀏覽器選項(xiàng)卡分開。
未經(jīng)用戶許可,網(wǎng)站不得推送通知。網(wǎng)站只能請(qǐng)求推送訂閱以響應(yīng)鼠標(biāo)點(diǎn)擊或擊鍵。用戶可以單擊“訂閱”按鈕,然后在出現(xiàn)的權(quán)限對(duì)話框中單擊允許。網(wǎng)站的通知切換將在設(shè)備設(shè)置中找到,就像本機(jī)應(yīng)用程序一樣。
Push API使用一個(gè)JavaScript接口,允許網(wǎng)站使用推送訂閱。ServiceWorker API支持推送消息,而Notifications API允許服務(wù)工作者推送通知,而無(wú)需打開瀏覽器。
在macOS Ventura中,安裝了一個(gè)名為webpushd的新守護(hù)程序作為L(zhǎng)aunchAgent。它接收來(lái)自網(wǎng)頁(yè)的推送訂閱請(qǐng)求,并使用Apple推送通知服務(wù)將它們轉(zhuǎn)換為推送訂閱。結(jié)果是Web應(yīng)用程序會(huì)感覺更接近原生應(yīng)用程序。使用Safari中的共享表,用戶可以將Web應(yīng)用程序頁(yè)面添加到主屏幕以融入其中。