Apple 在前端也很與時俱進!你知道嗎?
在 6 月 11 日舉行的 Apple 全球開發者大會(WWDC)上,Apple 揭開了其最新軟件系列的面紗,其中包括 ios 18、watchOS 11、macOS 15、iPadOS 18、tvOS 18 以及 VisionOS 2 操作 系統。不僅如此,Apple 還發布了其 AI 套件 Apple Intelligence 。
在此次更新中,Safari 瀏覽器也迎來了全新的版本—— Safari 18,它也緊跟時代潮流帶來了令人矚目的 48 項全新 Web 功能,并對 174 個已知問題進行了修復。下面就來看看 Safari 18 的更新亮點!
WebXR 增強
- 對 visionOS 2 Beta 的支持:為visionOS 2 Beta 增加了對 WebXR 的支持,允許開發者為 Apple Vision Pro 用戶創建完全沉浸式的Web體驗。
- Transient-pointer輸入模式:Safari for visionOS 2 Beta支持新的WebXR
transient-pointer
輸入模式,使用戶可以通過視線和手勢進行自然交互。 - 手部跟蹤:支持 WebXR 手部跟蹤,允許開發者為用戶的手部動畫創建3D模型。
CSS 更新
- 視圖轉換API:引入了視圖轉換API,允許開發者在狀態之間平滑地轉換元素,并提供更靈活的頁面動畫。
- 樣式查詢:支持樣式查詢,使開發者能夠定義可重用的樣式組,并根據CSS自定義屬性的值應用這些樣式。
- 相對顏色語法:擴展了相對顏色語法,允許在定義新顏色時引用
currentColor
或系統顏色關鍵字。 - 顯示屬性的動畫:引入了對
display
屬性的過渡動畫支持,結合@starting-style
和transition-behavior
,允許開發者在元素狀態間實現平滑的顯示轉換。 - 在visionOS上塑造交互區域:Safari in visionOS 2 Beta 允許開發者通過CSS
clip-path
和SVG來定義和顯示鏈接等交互元素的可見區域形狀,增強用戶體驗。 - 背景濾鏡:改進了背景濾鏡
backdrop-filter
的實現,無需前綴,支持 SVG 濾鏡函數,并增強了與其他瀏覽器的互操作性。 - Flexbox中的safe:增加了對 Flexbox 中
safe
關鍵字的支持,用于改進 flex 項目溢出時的布局處理。 - 內容可見性:支持
content-visibility
屬性,允許開發者優化頁面性能,通過延遲渲染屏幕外內容來加速頁面加載。
Mac上的Web應用
- 直接打開鏈接:Mac上的Web應用支持直接打開與已添加Web應用范圍匹配的鏈接,無需跳轉瀏覽器。
- 擴展支持:Mac上的Web應用現支持Safari Web擴展和內容攔截器,為用戶提供更多個性化選項。
Safari 擴展更新
- 移動設備管理:增加了對移動設備管理的支持,包括擴展啟用狀態、私人瀏覽狀態和設備上的網站訪問管理,使學校和企業能更方便地配置和管理iOS、iPadOS或macOS設備上的Safari應用擴展、內容攔截器和Web擴展。
空間媒體體驗
- Fullscreen API:Safari 18 for visionOS 2 Beta 引入了 Fullscreen API,允許開發者在Web上創建與Apple Vision Pro上類似的空間照片和全景圖體驗。用戶點擊照片時,它們會彈出到浮動框架中,進一步點擊則展開為完全沉浸式的體驗。
HTML
- 內聯預測文本:Safari 18 Beta 將 iOS、iPadOS、visionOS、macOS Sequoia 和 macOS Sonoma 上的內聯預測文本功能帶到了Web,允許在輸入時預測并自動完成文本。開發人員可通過
writingsuggestions
屬性控制此功能。 - 開關控件觸覺反饋:iOS 18 Beta 的 WebKit for Safari 為
<input type=checkbox switch>
添加了觸覺反饋,提升了iPhone上開關控件的用戶體驗。 - 日期和時間輸入輔助功能:macOS 上的 WebKit for Safari 18 Beta 改進了對日期和時間輸入字段類型的輔助功能支持,使
<input type="date">
、<input type="datetime-local">
和<input type="time">
元素與VoiceOver正常協作。 - ARIA屬性擴展:增加了對
ariaBrailleLabel
和ariaBrailleRoleDescription
元素反射屬性的支持,允許通過 JavaScript API 直接獲取和設置ARIA屬性,為特定可訪問性需求提供了更多選項。 - Safari Viewer無干擾視頻觀看:引入
Viewer
功能,提供無干擾的視頻觀看體驗,當切換標簽或窗口時自動進入畫中畫模式。 - visionOS沉浸式視頻:Safari for visionOS 2 Beta 支持全屏視頻停靠到當前環境,提供完全沉浸式的視頻觀看體驗,并通過數字表冠調節沉浸感。
- 受管理的媒體源支持:為Managed Media Source (MMS )和 Media Source Extensions (MSE) 添加了 Workers支持,增強了跨站點媒體播放的穩定性和性能。
WebRTC
- WebRTC HEVC支持:WebKit for Safari 18 beta 增加了對 WebRTC HEVC RFC 7789 RTP Payload Format 的支持,為視頻會議、視頻流和高比特率媒體傳輸提供了新選擇。
Passkeys
- 增加了對使用
mediation=conditional
進行web認證憑據創建的支持,支持網站自動將密碼賬戶升級為passkeys。 - 支持跨相關來源使用 passkeys,允許網站在有限數量的共享憑證后端的域上使用相同的passkey。
- 增加了對 WebAuthn prf 擴展的支持,允許從passkey中檢索對稱密鑰用于加密用戶數據。
HTTPS
- 混合內容處理:通過在混合內容設置中自動升級被動子資源請求,增強了對所有圖像、視頻和音頻的HTTPS支持,遵循混合內容級別 2。
JavaScript
- 在RegExp中增加了對Unicode 15.1.0字符的支持,總共支持149,813個字符。
- 在
RegExp.prototype[Symbol.matchAll]
中增加了對v
標志的支持,提供了更強大的Unicode字符匹配能力。
Web API
- 增加了對
URL.parse()
的支持,這是一種新的URL解析方法,在解析失敗時返回null
而不是拋出異常。 - 增強了聲明性Shadow Tree支持,通過向
<template>
元素添加shadowRootDelegatesFocus
、shadowRootClonable
、shadowRootSerializable
IDL屬性和getHTML()
方法,使它們更加靈活和可序列化。 - hasUAVisualTransition:增加了對
PopStateEvent
的hasUAVisualTransition
屬性的支持,該屬性指示用戶代理是否對片段導航提供了視覺過渡效果。 - 模塊腳本的子資源:支持模塊腳本的子資源完整性,為外部托管的模塊腳本提供了內容完整性的加密保證,增強了安全性。
- bytes() 方法:為
Request
、Response
、Blob
和PushMessageData
對象添加了bytes()
方法,允許開發者直接訪問底層字節數據,而無需使用arrayBuffer()
并將結果包裝在Uint8Array
中。 - 文本片段的特性檢測:通過
document.fragmentDirective
提供了對文本片段特性的檢測支持。雖然返回的FragmentDirective
對象本身不提供任何功能,但它對于檢測瀏覽器是否支持片段指令很有幫助。
Canvas
- willReadFrequently: 在
getContext()
方法中添加了willReadFrequently
上下文屬性,用于指示是否計劃進行大量回讀操作。這有助于優化在頻繁調用getImageData()
時的性能。 - currentcolor:擴展了 2D 畫布對
currentcolor
的支持,使其可以在color-mix()
或相對顏色語法中使用。在這些上下文中,currentcolor
將默認為 canvas 元素上的計算顏色屬性值。
WebGL
增加了對以下 WebGL 擴展的支持:
EXT_texture_mirror_clamp_to_edge
WEBGL_render_shared_exponent
WEBGL_stencil_texturing
EXT_render_snorm
OES_sample_variables
OES_shader_multisample_interpolation
Web Inspector 更新
- 在 Web Inspector 的 CSS 源編輯器中增加了模糊搜索代碼補全的支持,提高了開發者的調試效率。
WKWebView
- WebKit 在 iOS 18 beta、iPadOS 18 beta、visionOS 2 beta 和 macOS Sequoia beta 中添加了對兩個新 API 的支持—— Writing Tools API 和用于控制自適應圖像符號插入的 API。
Apple Pay
- WebKit for Safari 18 beta 增加了對 Apple Pay 資金轉賬的支持。
參考:https://webkit.org/blog/15443/news-from-wwdc24-webkit-in-safari-18-beta