2017-11-24 | learn

android-oreo-autofill

https://android-developers.googleblog.com/2017/11/getting-your-android-app-ready-for.html

Android 8.0 提供新的自动填写特性,类似现在的输入法应用,可以选取第三方的 Autofill 应用管理自己的数据。可以到 设置->语言和输入法->自动填充服务 更改配置。

开发者需要作何准备

对应用进行测试,必要时添加提示属性

建议利用 android:autofillHints attribute 和 setAutofillHints() method ,为系统提供更精确的信息。

对于 WebView ,可使用 Autocomplete Attributes 。Chrome 61 及以上版本生效。

自定义 View 也可使用 define the metadata that allows autofill to work 进行适配。

对于不需要 Autofill 的控件,可以标记为 IMPORTANT_FOR_AUTOFILL_NO (or IMPORTANT_FOR_AUTOFILL_NO_EXCLUDE_DESCENDANTS)。谨慎使用此属性,并确保用户长按后可以继续使用悬浮菜单的 Autofill 选项。

将网页和手机客户端连接起来

使用 Google Autofill 可以在 web 和 app 间无缝的共享数据,保存在 Chrome 里的用户名密码可以直接用于手机客户端。开发者需要声明网站与应用的关系。

适配过 App Links 或者 Google Smart Lock 的应该接触过 Digital Asset Links (DAL) file。它是一个 json 文件,应该存放在你网站的一个公开位置上,提供网页和应用之间的关系。

创建 DAL 文件相关信息可见 Smart Lock for Passwords guide ,工作原理类似。此外, DAL 文件是公开的,其他 Autofill 服务开发者也可以利用此文件实现相关内容。

Step 2: Update your App’s Manifest with the same information

接着按照 Smart Lock for Passwords guide 中的步骤,在客户端声明与网站的关系。

要用一个 asset_statements 资源标注 assetlinks.json 文件的 URL,上传 play 市场,填写 Affiliation Submission Form 让配置生效。

Android Studio 3.0 可以快速生成 DAL (Tools -> App Links Assistant -> Open Digital Asset Links File Generator),确认选中 “Support sharing credentials between the app and website”。

点击 “Generate Digital Asset Links file”, 复制 preview content 到 DAL 文件,确认所有信息正确。

Future work

目前 (16 November 2017) 来说, Autofill 仍处于早期阶段。接下来还会有相关体验方面改进。主要包括以下几点:

  1. Autofill with Google : 提升 Google Autofill 体验,毕竟系统自带。
  2. WebView support : Chrome 61,测试,让兼容性更好。
  3. Third party app support : 希望你们这些开发者要配合啊,这有完整文档 Autofill Framework