理應(yīng)被廣泛了解卻鮮有人知的8個(gè)瀏覽器API
如今,很少有不使用API的web應(yīng)用程序了。API目前廣受歡迎,瀏覽器開(kāi)始為復(fù)雜的功能提供API(ApplicationsProgramming Interface,應(yīng)用程序接口),而這些功能有時(shí)只能通過(guò)本機(jī)應(yīng)用程序?qū)崿F(xiàn)。
隨著web開(kāi)發(fā)領(lǐng)域不斷發(fā)展,瀏覽器廠商也在加緊跟上步伐。它們不斷開(kāi)發(fā)新的API,為web應(yīng)用程序帶來(lái)新的本地類功能。雖然一些API已經(jīng)在現(xiàn)代瀏覽器中得到了充分支持,但人們對(duì)它們還是不太了解。下面這些API會(huì)在未來(lái)發(fā)揮重要作用,是時(shí)候認(rèn)識(shí)他們啦!
Web Locks API
這個(gè)API允許你在多個(gè)標(biāo)簽頁(yè)上運(yùn)行web應(yīng)用程序,以訪問(wèn)協(xié)調(diào)共享資源。雖然這種情況并不常見(jiàn),但在高級(jí)用例中,開(kāi)發(fā)人員需要運(yùn)行web應(yīng)用程序的多個(gè)瀏覽器標(biāo)簽頁(yè)并保持它們同步,此時(shí)該API可以派上用場(chǎng)。
雖然 API (如Shared Worker、Broadcast Channel、local Storage、session Storage、post Message、unload handler)可以用來(lái)管理制表符通信和同步,但它們都有缺點(diǎn),需要開(kāi)發(fā)人員進(jìn)行變通,而這會(huì)導(dǎo)致代碼可維護(hù)性的降低。Web Locks API試圖通過(guò)引入更標(biāo)準(zhǔn)化的解決方案來(lái)簡(jiǎn)化這個(gè)過(guò)程。
該API在Chrome 69中是默認(rèn)啟用的,但仍然沒(méi)有得到Firefox和Safari等主流瀏覽器的支持。請(qǐng)注意,使用這個(gè)API時(shí),你應(yīng)該掌握如何處理類似“死鎖”的問(wèn)題,避免落入其中。
支付請(qǐng)求API(The Payment Request API)
支付請(qǐng)求API幫助客戶和賣家更加無(wú)縫完成結(jié)賬過(guò)程。這種新方法無(wú)需支付表單,從根本上改善了用戶支付體驗(yàn)。由于該API支持Apple Pay和Google Pay,它將有望成為電子商務(wù)領(lǐng)域的主要組成部分。
此外,由于憑證是在瀏覽器中管理的,用戶可以更容易從移動(dòng)瀏覽器切換到桌面瀏覽器,并且仍然可以訪問(wèn)他們的卡片信息。用戶還可以從商家端進(jìn)行定制,只需提及商戶支持的支付方式和銀行卡信息,該API甚至可以根據(jù)送貨地址提供送貨選項(xiàng)。
頁(yè)面可見(jiàn)性API(The Page Visibility API)
在電腦瀏覽器中同時(shí)要打開(kāi)20多個(gè)標(biāo)簽頁(yè)是很常見(jiàn)的事情,筆者有朋友曾經(jīng)在修復(fù)一個(gè)bug后關(guān)閉了100多個(gè)標(biāo)簽頁(yè)。瀏覽器甚至已經(jīng)開(kāi)始出現(xiàn)了對(duì)標(biāo)簽頁(yè)按照特征進(jìn)行分組管理的功能,使標(biāo)簽頁(yè)更有條理。
在頁(yè)面可見(jiàn)性API的幫助下,你可以檢測(cè)web頁(yè)面是否空閑。換句話說(shuō),你可以知道用戶是否正在查看包含你web頁(yè)面的標(biāo)簽頁(yè)。這聽(tīng)起來(lái)不足為奇,但它大大提升了用戶使用網(wǎng)站的體驗(yàn)度。以下是幾個(gè)可以使用該API的例子:
· 當(dāng)瀏覽器標(biāo)簽處于非活動(dòng)狀態(tài)時(shí),下載應(yīng)用程序包資源和媒體資源的剩余部分,這將幫助您高效利用空閑時(shí)間。
· 當(dāng)用戶最小化或切換到另一個(gè)標(biāo)簽頁(yè)時(shí)暫停視頻。
· 當(dāng)標(biāo)簽頁(yè)處于非活動(dòng)狀態(tài)時(shí),暫停圖片輪播。
盡管開(kāi)發(fā)人員過(guò)去使用過(guò)blur 和 focus等事件,但它們并沒(méi)有告訴用戶你的頁(yè)面是否真的被隱藏了,頁(yè)面可見(jiàn)性API幫助解決了這個(gè)問(wèn)題。此外,該瀏覽器API與大部分瀏覽器兼容。
來(lái)源:MDNDocs
基于圖形檢測(cè)API(The Shape Detection API)
web開(kāi)發(fā)人員可能遇到過(guò)許多需要安裝外部庫(kù)來(lái)處理圖像中面孔、文本和條形碼等元素檢測(cè)的情況,這是因?yàn)橹斑€沒(méi)有可供開(kāi)發(fā)人員使用的web標(biāo)準(zhǔn)API。
Chrome團(tuán)隊(duì)正試圖通過(guò)在Chrome瀏覽器中提供一個(gè)實(shí)驗(yàn)性基于圖形檢測(cè)API來(lái)改變這一現(xiàn)狀,使其成為web標(biāo)準(zhǔn)。目前該API還處于試驗(yàn)階段,您可在 chrome://flags中啟用 #enable-experimental-web-platform-features 進(jìn)行本地訪問(wèn)。
Web分享API (The Web Share API)
Web分享API允許你以與本機(jī)應(yīng)用程序相同的方式將鏈接、文本、文件共享到設(shè)備上的其他應(yīng)用程序,有助于提高用戶對(duì)web應(yīng)用程序的參與度。從2020年年中開(kāi)始,這個(gè)API只能在Safari和Android的Chromium分支上運(yùn)行。
本機(jī)共享接口
消息推送API(The Push API)
消息推送API允許web應(yīng)用程序從服務(wù)器接收推送到它們的消息,不管應(yīng)用程序是否處于前臺(tái)。即使應(yīng)用程序沒(méi)有在瀏覽器上加載它也可以工作,這使得開(kāi)發(fā)人員能夠及時(shí)地向用戶交付異步通知。要實(shí)現(xiàn)這一點(diǎn),應(yīng)該在使用API之前獲得用戶權(quán)限。
Cookie存儲(chǔ)API(The Cookie Store API)
眾所周知,使用cookie有點(diǎn)慢,因?yàn)樗峭降摹5獵ookie 存儲(chǔ)API實(shí)現(xiàn)了對(duì)HTTP cookies的異步訪問(wèn),有時(shí)也被稱為異步Cookie API。此外,該API還向服務(wù)工作者公開(kāi)這些HTTP cookies。盡管有幫助庫(kù)來(lái)輔助所有常見(jiàn)的cookie操作,但有了Cookie存儲(chǔ)API,這些操作會(huì)更容易,也更高效。
Web分享目標(biāo)API(The Web Share Target API)
通過(guò)在web表單中提供類似于應(yīng)用程序的體驗(yàn),web應(yīng)用程序正在改變我們理解應(yīng)用程序的方式。根據(jù)StateOfJS網(wǎng)站的數(shù)據(jù),約48.2%的用戶使用過(guò)PWAs(Progressive Web Apps,漸進(jìn)式Web應(yīng)用), 另有45.5%的用戶知道PWAs,足以見(jiàn)得PWAs受眾之廣。
盡管PWAs有許多類似于本機(jī)的特性,但它們?nèi)鄙購(gòu)谋緳C(jī)應(yīng)用程序接收文件的途徑。這個(gè)API實(shí)現(xiàn)了從其他本機(jī)應(yīng)用程序接收鏈接、文本、文件,目前該API只能在Android系統(tǒng)Chrome 76及以上版本瀏覽器使用。
這些API都是非常“酷炫”的。缺乏主流瀏覽器支持是這些API的唯一不足之處,這意味著在生產(chǎn)中使用這些API并不容易。但我敢肯定,它們將在未來(lái)瀏覽器與web的開(kāi)發(fā)中發(fā)揮關(guān)鍵作用。
本文轉(zhuǎn)載自微信公眾號(hào)「讀芯術(shù)」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系讀芯術(shù)公眾號(hào)。