1. 程式人生 > >如何讓應用支援 Android 8.0 自動填充?

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

0?wx_fmt=gif&wxfrom=5&wx_lazy=1

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

自從 Android Oreo 釋出以來,自動填寫功方便了使用者在 App 內提交資訊,例如信用卡、登陸資訊、地址等等。現在 App 內的表格都可以自動填寫,而且使用者也無須費力記住複雜的密碼,也免去了一次次填寫的麻煩。

使用者可以自行選擇多種自動填寫服務 (過程類似選擇輸入法)。在預設情況下,Google(服務)支援自動填寫,不過使用者也可以自行新增任何三方自動填寫 App ,過程如下:

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

自動填寫現支援專案

0?wx_fmt=jpeg

現在,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 採用自定義檢視,開發者也可以通過定義元資料來新增自動填寫功能。

瞭解更多:https://developer.android.google.cn/guide/topics/text/autofill.html#custom_views_with_standard_view_structure

那麼像是 Captcha(驗證碼)或者訊息對話方塊這類完全不適用自動填寫的應該怎麼操作呢?開發者只需要將檢視引數設定為 IMPORTANT_FOR_AUTOFILL_NO(或者將檢視層次根設定為 IMPORTANT_FOR_AUTOFILL_NO_EXCLUDE_DESCENDANTS)。開發者得負責地使用該欄位,牢記使用者可以隨時繞過這一步驟,只要長按輸入框(EditText)並選定懸浮選單中的自動填寫就行了。

關聯網站和移動端 App

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

第一步:在 yourdomain.com/.well-known/assetlinks.json 中託管 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 和網站之間共享認證資訊” 的新複選框。

0?wx_fmt=png

然後點選 “生成數字資產連結檔案”,將預覽資訊複製到 DAL 檔案中,並將檔案託管在伺服器和 App 上。記得核實選定域名和證書是否正確。

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

展望未來

我們的主要努力方向是:

  1. Google 自動填寫:我們希望使用者從一開始就能夠有很好的體驗,因此所有 Android Oreo 裝置都支援 Google 自動填寫功能。一直以來,我們不斷改善欄位檢測和資料質量,同時擴大支援範圍,增加儲存資料類別。

  2. WebView 支援:從 Chrome 61 開始,我們引進了對 WebViews 表單填寫支援,同時我們會繼續測試、加固並且改善該整合,因此即使您的 App 採用WebViews,同樣可以享受到自動填寫功能。

  3. 第三方 App 支援:我們正在和生態圈夥伴緊密合作,確保 App 能夠完美構建在自動填寫基礎框架上。強烈建議開發者試著在 Android Oreo 上釋出自己的 App ,看看能否如期支援自動填寫。詳細資訊請參閱以下連結中的《自動填寫框架》完整版文件。

    自動填寫框架:https://developer.android.google.cn/guide/topics/text/autofill.html

0?wx_fmt=gif

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

推薦閱讀:

0?wx_fmt=gifhttps://developer.android.google.cn/guide/topics/te