我已经看到这个问题浮现在互联网上,但我还没有找到一个有效的解决方案.基本上,我想加载我的应用程序并按下按钮; 然后按钮操作将在已经加载到webview中的网站中填写用户名和密码(或等待onPageFinished).最后,将激活登录页面上的提交按钮.
根据我的理解,这可以通过使用loadUrl(javascript)进行java注入来完成,但我不知道java命令将填充哪些字段.iOS的问题也是一样,但命令略有不同.
是否有可能在webivew中使用javascript做我要求的事情,或者我是否必须在没有像这样或这样的webview的情况下做一个http-post ?
非常感谢您提供的任何帮助!
我已经使用 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
android autofill android-webview android-recyclerview android-autofill-manager