1

Smart Lock 集成中的一个可能流程会导致新用户的“选择帐户”模式。在此弹出窗口中选择一个帐户会预先填写注册页面,但用户必须随后输入新密码才能创建帐户。我发现“选择帐户”标题具有误导性,因为它使用户相信他们已经在应用程序上拥有帐户。是否可以更改此模式的标题以说其他内容-也许更直观的内容,例如“预填充注册表单:”?

4

1 回答 1

2

我是 Google Smart Lock 的产品经理。我们在 Play 服务 API 的 8.3 版本(2015 年 11 月)中添加了一些功能来支持这一点。

过去,允许用户一键选择电子邮件地址以登录或注册的“提示”对话框的标题为“选择帐户”,正如问题中所述,这引起了一些用户的困惑。在 8.3 中,我们将默认文本更改为“登录方式”,并允许调用应用程序自定义为“注册方式”。无法完全自定义对话框文本,因为它由 Play Services 呈现并且必须本地化,但在 UX 研究中,我们发现“注册”与“预填注册表单”和其他用户接受和完成相同变体,但在可以使用对话框的场景中为开发人员提供了更多的自由度。(此外:在测试中,我们发现大多数用户根本不会阅读对话框顶部的文字!

示例代码:为创建帐户构建一个CredentialPickerConfigwith并在构建一个添加到Play Services 8.3 中的方法时提供这个。setForNewAccount(true)setHintPickerConfig()HintRequestgetHintPickerIntent()Auth.CredentialsApi

import com.google.android.gms.auth.api.Auth;
import com.google.android.gms.auth.api.credentials.CredentialPickerConfig;
import com.google.android.gms.auth.api.credentials.HintRequest;

CredentialPickerConfig selectorConfig = new CredentialPickerConfig.Builder()
        .setForNewAccount(true).build();
HintRequest hintRequest = new HintRequest.Builder()
        .setHintPickerConfig(selectorConfig).build();
PendingIntent intent = Auth.CredentialsApi.getHintPickerIntent(apiClient, hintRequest);
try {
    startIntentSenderForResult(intent.getIntentSender(), RESOLVE_HINT, null, 0, 0, 0);
} catch (IntentSender.SendIntentException e) {
    Log.e(TAG, "Intent failure", e);
}

查看 Github 上的示例代码,了解有关设置apiClient和集成 API 其余部分的详细信息。如果您有任何问题或反馈,请发表评论。

https://github.com/googlesamples/android-credentials

于 2015-12-30T19:24:13.830 回答