WebSlate 效能和安全性
效能
由於 WebSlate 是載入的網頁,因此請務必考慮效能影響:
場景通常在 60fps 時效能最高可達 10 個作用中的 WebSlates。 不論內容為何,幀速率和一般效能降低可能會與放置在場景中的WebSlates數目成比例觀察。
內容會在 WebSlate 中載入並執行,而線程與場景的更新和轉譯線程 () 不同,因此不太可能直接影響幀速率。 不過,在運行時間複雜度和記憶體使用量方面,考慮在網頁上執行 JavaScript 的成本仍然很重要。
為了節省效能,超過 30 秒的 WebSlates 會自動暫停。 它們會在返回螢幕上時快速繼續,但這可能會影響主控頁面上主動執行的服務。 如果這是問題,開發人員可以使用預製的 [防止暫停] 複選框來停用暫停。 請注意,這樣做可能會導致場景耗用更多資源,因為這些 WebSlates 會隨時保持作用中狀態。
由於 WebSlates 預設沒有任何外部流覽 UI,因此最佳做法是只載入自定義 URL,其中網站導覽是迴圈的,而且可以在頁面內完成。 例如,這可以使用導覽提要字段或中樞頁面的連結來完成。
內容 效能分析器 (CPA) 工具包含 WebSlate 分析器,可測量 Unity 轉譯管線在框架中轉譯 WebSlates 所需的平均時間。
度量是以 Unity 的分析工具錄製器為基礎,而且需要播放模式。 分析器會將相機移到每個 WebSlate 上,以收集足夠的分析工具範例,並計算平均轉譯時間。
這會在 Unity 的轉譯管線內容中,提供 WebSlate 轉譯時間的第一階段高階分析。 它不會提供 WebSlate 內容本身的幀速率。
如果 Unity 的轉譯管線超過閾值,將 WebSlates 轉譯 (目前為 10ms) ,CPA 工具會提供警告。
效能分析工具也可以使用相同的度量。 當類別的預算額度超過時,效能分析工具上的群組通常會將色彩從綠色變更為紅色。 目前,WebSlate 群組只會顯示為綠色,直到合理化 WebSlates 的合理轉譯時間預算為止。
安全性限制
WebSlates 會鎖定至其巡覽至的 URL,以防止惡意重新導向。 除非明確列為允許的網域,否則所有非預期的外部網域超連結導覽都會遭到封鎖 (請參閱下列) 。
WebSlates 限制為在初始網域內流覽,或指定URL的和伺服器的重新導向。
WebSlate 內的流覽僅限 HTTPS。
裝置對網路攝影機、麥克風和地理位置的存取遭到封鎖。
WebSlate 網域允許清單
為了確保安全性,防止非預期的 URL 型攻擊媒介,例如網路釣魚,WebSlates 預設會將流覽限制為載入 WebSlate 之第一頁網域下所包含的 URL。 例如,在上 https://www.microsoft.com/ 啟動的 WebSlate 只會流覽至 URL 開頭為 “www.microsoft.com” 的頁面。 雖然這可確保使用者不會不小心與預期的流覽流程產生差異,但對於某些使用案例,例如用戶驗證,可能會過度限制預設值,在此期間可能會重新導向至子域或第三方驗證提供者。
因應這些使用案例的方式是將網域新增至 WebSlate 的允許清單。
自動新增網域 (建議的)
在 Unity 編輯器中使用 WebSlates 時,您可以選擇啟用「收集允許的網域」。 這會移除網域導覽限制,讓您可以在以播放模式執行時自由流覽,以測試您的案例。 當您在播放模式中瀏覽時,WebSlate 會記錄您在背景瀏覽的網域。
在此情況下,我們會從 microsoft.com 展開導覽,以包含 learn.microsoft.com。
結束播放模式之後,您會在最上層的 Assets 資料夾中找到名為 “WebViewAllowedDomains.asset” 的資產。
按兩下此資產可提供您在初始網址之外造訪的額外網域清單。 您可以以滑鼠右鍵按兩下、複製值,然後將值貼到WebSlate元件的[允許的網域] 字段中。
注意:此選項無法在上傳的場景中啟用。 讓「收集允許的網域」保持啟用狀態,將不會移除您最後場景中的限制。 不過,只要網域新增至 WebSlate,您允許的網域清單就會保存並允許導覽。
手動新增網域
如果您已經知道需要哪些網域,您可以展開 [允許的網域] 下拉式清單,並將您的補充網域新增至 Unity GUI 中的清單,以手動將其新增至 WebSlate。