如何讓應用支持 Android 8.0 自動填充?

自從 Android Oreo 發佈以來,自動填寫功能方便了用戶在 App 內提交信息,例如信用卡、登錄信息、地址等等。如今 App 內的表格均可以自動填寫,並且用戶無須費力記住複雜的密碼,也免去了一次次填寫的麻煩。
html

用戶能夠自行選擇多種自動填寫服務 (過程相似選擇輸入法)。在默認狀況下,Google(服務)支持自動填寫,不過用戶也能夠自行添加任何三方自動填寫 App ,過程以下:android

設定 -> 系統 -> 語言 -> 高級選項 -> 自動填寫服務json

自動填寫目前支持項目:瀏覽器

如今,Google(服務)下的自動填寫功能支持的項目包括:信用卡信息、地址、登錄信息、姓名和電話號碼。當用戶首次登錄或者建立帳號時,自動填寫功能同時容許用戶保存該帳號的認證信息。即便 App 內經過 WebViews 完成登錄 —— 用於打開登錄頁面的內置瀏覽器控件 —— 用戶依舊能夠享用自動填寫功能帶來的方便,前提是設備內裝有 Chrome 61 或者更高版本。

自動填寫 API 徹底開放,任何想要將該服務內嵌到本身 App 的開發者均可如下載該 API。如今咱們正在和 1Password, Dashlane, Keeper 以及 LastPass 積極合做,加快三者在 Android 平臺上的認證。同時咱們將會認證密碼管理器(password manager)並將其添加到 Google Play 中,用戶能夠經過 「添加服務」 按鈕跳轉連接到 Google Play 中的頁面。安全

開發者應該怎麼作?

若是您是 App 開發者,只需要完成如下幾個簡單步驟,就能夠在 App 中輕鬆添加自動填寫功能:服務器

對 App 進行測試,若有必要須要標註視圖:網絡

大部分狀況下,讓 App 支持自動填寫功能不須要額外操做。可是爲了保證行爲一致性,咱們建議開發者經過 android:autofillHints attribute 或者 setAutofillHints ( ) method 向框架提供關於字段內容的顯式提示信息(explicit hint)。架構

若是 App 使用 WebViews,那麼開發者能夠經過 HTML Autocomplete Attributes 提供字段提示信息。有一點要注意,設備需要將 Chrome 瀏覽器升級至 61 或以上版本,WebViews 才能支持自動填寫功能。即便您的 App 採用自定義視圖,開發者也能夠經過定義元數據來添加自動填寫功能。框架

訪問此連接瞭解更多:dom

那麼像是 Captcha(驗證碼)或者消息對話框這類徹底不適用自動填寫的應該怎麼操做呢?開發者只須要將視圖參數設定爲 IMPORTANT_FOR_AUTOFILL_NO(或者將視圖層次根設定爲 IMPORTANT_FOR_AUTOFILL_NO_EXCLUDE_DESCENDANTS)。開發者得負責地使用該字段,牢記用戶能夠隨時繞過這一步驟,只要長按輸入框(EditText)並選定懸浮菜單中的自動填寫就好了。

關聯網站和移動端 App

Google 自動填寫功可以無縫分享網站和移動端 App 之間的登錄信息,便是說 Chrome 瀏覽器保存的密碼亦能夠應用在原生 App 上。可是如何保證三方 App 也能分享信息呢?這需要開發者在網站和移動端 App 之間構建明確聯繫,步驟以下:

第一步:在 yourdomain.com/.well-known…中託管 JSON 文件

若是以前接觸過相似 App Link或者 Google Smart Lock 的技術,那麼您可能據說過數字資產連接(DAL)文件。DAL 採用 JSON 文件的形式保存在您的網絡服務器 .well-known 目錄中,用於公開聲明與此網站關聯的其餘 App 或者網站。

請參閱 Smart Lock for Passwords 指南,按照指南中的步驟在服務器上正確建立而且託管 DAL 文件。就用戶登陸 App 來講,Smart Lock 雖然更爲高級,可是咱們的自動填寫功能其實採用的是相同的基礎架構來驗證 App 和網站之間的關聯信息。並且,由於 DAL 文件是徹底公開的,第三方自動填寫服務開發者也可使用關聯信息來保障實現安全性。

第二步:根據相同信息更新 App 的清單文件(Manifest)

一樣地,請根據 Smart Lock for Passwords 指南中《聲明 Android App 關聯項》條目,完成此步驟。

開發者需要根據 asset_statements 資源更新 App 的清單文件,該資源可以連接到託管 assetlinks.json 文件的 URL 地址。完成操做以後,開發者須要從新上傳 App 到 Google Play,而且填寫 「關聯提交表格」(Affiliation Submission Form),屆時關聯才正式生效。

Android Studio 3.0 中 App Links Assistant 可以幫開發者自動生成上述全部信息。打開 DAL 生成器工具(工具 -> App Links Assistant -> 打開數字資產連接文件生成器),確保啓用名爲 「支持 App 和網站之間共享認證信息」 的新複選框。


而後點擊 「生成數字資產連接文件」,將預覽信息複製到 DAL 文件中,並將文件託管在服務器和 App 上。記得覈實選定域名和證書是否正確。

Android 自動填寫功能還在初級階段,不論用戶是經過 Google 仍是三方密碼管理器來使用該功能,咱們都將繼續努力,改善體驗。

展望將來

咱們的主要努力方向是:

  1. Google 自動填寫:咱們但願用戶從一開始就可以有很好的體驗,所以全部 Android Oreo 設備都支持 Google 自動填寫功能。一直以來,咱們不斷改善字段檢測和數據質量,同時擴大支持範圍,增長保存數據類別。

  2. WebView 支持:從 Chrome 61 開始,咱們引進了對 WebViews 表單填寫支持,同時咱們會繼續測試、加固而且改善該集成,所以即便您的 App 採用WebViews,一樣能夠享受到自動填寫功能。

  3. 第三方 App 支持:咱們正在和生態圈夥伴緊密合做,確保 App 可以完美構建在自動填寫基礎框架上。強烈建議開發者試着在 Android Oreo 上發佈本身的 App ,看看可否如期支持自動填寫。詳細信息請參閱《自動填寫框架》完整版文檔。

如遇任何問題或有任何寶貴意見,歡迎您經過留言等方式與咱們聯繫,幫助咱們進一步改進產品。

相關文章
相關標籤/搜索