gpt4 book ai didi

android - 如何使用 Android 自动填充 API

转载 作者:行者123 更新时间:2023-12-03 09:32:51 24 4
gpt4 key购买 nike

我已经使用 android webview 组件构建了一个小浏览器,并希望使用 Android AutoFill API 集成密码/凭据管理器支持。
我已经阅读了文档,但完全迷失了,找不到任何与 webviews 等复杂事物集成的示例。
javascript 方面对我来说不是问题,当用户选择登录表单上的输入(并且应该显示自动填充对话框)以及完成输入用户名和密码时,我已经有事件触发并提交页面(并且凭据应保存回密码管理器),但我很难理解这一点的 android 方面。
webview 似乎已经对此有一些基本的支持,例如,如果我长按登录表单输入,并在上下文菜单中选择“自动填充”,我可以让它插入一些保存在凭证管理器中的值。问题是虽然凭据已针对我的应用程序 ID 而不是网站域保存,所以我的第一个问题是,当我请求自动填充菜单时,我如何告诉 API 它是针对特定字段类型的(例如用户名/密码)并且属于特定网站,因此它知道要获取哪些凭据并可以稍后更新它们?这是我在登录表单中选择字段时触发自动填充对话框出现的尝试。
更新:
当我在我的应用程序中创建一个静态 webview 时,自动填充会正确保存并提示表单上的凭据,并在每个站点上正确保存它们但是我需要它才能在 recyclerview 中的 webviews 中工作,并且由于某种原因它们没有共享相同的设置。我在 recyclerviews https://developer.android.com/guide/topics/text/autofill-optimize#recycle 中找到了有关自动填充的信息但使用 setAutofillId()似乎没有帮助,当我在手机上测试时,甚至这里的官方示例似乎也有点不可靠 https://github.com/android/input-samples/blob/master/AutofillFramework/Application/src/main/java/com/example/android/autofill/app/commoncases/RecyclerViewActivity.java

最佳答案

一个简单的解决方案是让 webview 处理这个问题。

webView.getSettings().setSaveFormData(true);

    webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setPluginState(WebSettings.PluginState.ON);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setDisplayZoomControls(true);
webView.setWebChromeClient(new WebChromeClient() /*Or yourOwnWebChromeClient*/);
webView.setWebViewClient(new WebViewClient() /*Or yourOwnWebViewClient*/);
webView.getSettings().setDomStorageEnabled(true);
webView.getSettings().setSaveFormData(true);

CookieSyncManager.createInstance(this);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptCookie(true);
CookieSyncManager.getInstance().startSync();
如果需要,您还可以添加 JavaScript 接口(interface)
    webView.addJavascriptInterface(this, JSInterface);
我使用了这种方法,它保存了 facebook、instagram 和 dailymotion.com 的登录 token 。
请试试这个 https://stackoverflow.com/a/56562679/9640177

you may try Creating multiple cache


您可能也想引用这个 - https://developer.android.com/guide/webapps/managing-webview#java

关于android - 如何使用 Android 自动填充 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63076140/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com