提升 WebView 相容性

教育機構會使用內容篩選產品,防止使用者透過 Chromebook 存取不當內容。使用者可以透過幾種方式避開這個內容沙箱,存取原本無法存取的內容。開發人員可參考這些 Android 和 Chrome 應用程式建議,確保應用程式能順利進行內容篩選。

減少應用程式中的網頁內容

如果您的應用程式使用 WebView 讓學生登入服務或顯示文件,學生可能會在沒有學校提供的內容過濾保護措施下瀏覽網路。學校在 Chromebook 上使用的熱門內容篩選產品,部分是以 Chrome 擴充功能的形式部署,這類產品只能查看瀏覽器分頁中的流量。由於網路內容通常難以預測,學生往往可以在 WebView 中瀏覽連結,自由瀏覽網路,且不會受到內容篩選保護措施限制。

減少應用程式中顯示的瀏覽器內容量,可降低應用程式中出現不當內容的可能性。如果無法避免,請確保 WebView 只提供您想要的內容,且不會連結至搜尋引擎或開放式網路。

限制 WebView 中的內容

如果應用程式需要 WebView,請確保 WebView 中的內容無法脫離應用程式,並導覽至您不擁有或控制的內容。如要避免這種情況,請修改 WebView 用戶端,透過 Android 上的允許清單覆寫特定網址的載入作業,或手動剖析網站,並確認連結不會連往您無法控管的第三方內容,否則使用者可能會前往不當內容。如果是 Chrome 應用程式,您也可以使用 WebRequestEventInterface 修改要求,並驗證要求是否允許導向允許的網站清單。

在瀏覽器中啟動外部網站

在裝置內建的網頁瀏覽器中開啟網頁內容,可降低使用者規避內容篩選的風險。

在 Android 應用程式中,請考慮使用 Chrome 自訂分頁,而非 WebView。在 Android 上,自訂分頁會開啟與應用程式主題相符的瀏覽器分頁。在 ChromeOS 中,系統會啟動一般瀏覽器,讓使用者正常瀏覽網頁,但由於這是他們的一般瀏覽器,因此系統會對學生存取的內容強制執行瀏覽器政策。對大多數教育機構而言,這表示瀏覽器上執行的內容篩選擴充功能會看到顯示的內容。如果第三方身分識別提供者依賴在 WebView 中實作 OAuth,這項功能就特別實用。

在 Chrome 應用程式中,不屬於您的內容連結應在新分頁中開啟,而不是在執行的 WebView 中開啟。如要從 Chrome 應用程式開啟新分頁,可以修改錨點標記,將目標屬性設為指向 _blank,這樣連結就會在新分頁中開啟。

<a href=”https://google.com” target=”_blank”>External Site</a>

注意:如要在 Chrome 應用程式中使用 WebView 進行單一登入驗證,請務必選擇身分識別提供者,並確保該提供者會使用上述 _blank 的目標屬性在新分頁中開啟新連結,或不會連結至任何可讓使用者跳脫至搜尋引擎或其他內容的內容,以免使用者取得廣泛的網際網路存取權。

使用 Google 登入

如果應用程式只使用 Google 登入功能,請勿使用 WebView 登入。請改用 Android 上的單一輕觸登入和註冊流程處理。如果您使用 Chrome 應用程式,請繼續使用 chrome.identity API。這個登入流程中的連結會從瀏覽器啟動,而不是從內嵌的 WebView 啟動,因此可能不會套用相同的篩選控制選項。