如何在 Webview 中保存用户名和密码
Posted
技术标签:
【中文标题】如何在 Webview 中保存用户名和密码【英文标题】:How to Save Username and Password in Webview 【发布时间】:2021-11-07 10:36:26 【问题描述】:目前我还在学习android开发,如果我的这个问题对你来说不是很容易理解,请见谅。
我创建了一个 Android 应用程序,它使用 RecyclerView 显示一组列表,当用户单击列表中的每个名称时,它会将它们重定向到一组不同的网站,并将显示在 WebView 中。这些网站中的每一个都有不同的登录页面。我不控制那些网站。这些网站会关闭它们的 cookie。现在,在这种情况下是否可以保存用户的用户名和密码?
当我加入 Facebook、Instagram 和 Twitter 时,我的应用程序能够保存用户名和密码(可能是因为它们正在保存 cookie?)。但是,如果我尝试我想添加的特定网站(特殊情况),则不会保存用户名和密码。
由于不推荐使用 setSavePassword 方法,我找不到其他方法来实现保存用户名和密码。我已经多次阅读有关 SharedPreferences、javascript 和 Autofill 的内容,但我不知道如何将它们正确地实现到我的应用程序中。因为从我阅读的大部分内容来看,建议首先需要一个登录页面来保存用户名和密码。
这是我的 WebView 代码。
public class WebViewActivity extends AppCompatActivity
private WebView webView;
String url = "";
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.webview);
webView = findViewById(R.id.webView);
WebSettings webSettings = webView.getSettings();
websettings.setDomStorageEnabled(true);
websettings.setJavaScriptEnabled(true);
webView.getSettings().setAppCachePath(getApplicationContext().getFilesDir().getAbsolutePath() + "/cache");
webView.getSettings().setDatabasePath(getApplicationContext().getFilesDir().getAbsolutePath() + "/databases");
if (Build.VERSION.SDK_INT >= 21)
CookieManager.getInstance().setAcceptThirdPartyCookies(webView, true);
else
CookieManager.getInstance().setAcceptCookie(true);
webView.loadUrl(url);
webView.setWebViewClient(new WebViewClient()
@Override
public void onPageFinished(WebView view, String url)
super.onPageFinished(view, url);
...
...
谢谢。
【问题讨论】:
你能在 Chrome 浏览器上这样做吗? 嗨。是的。如果我使用 Chrome 浏览器,我可以保存用户名和密码。即使在 Firefox 中,我也可以保存用户名和密码。 写一个不保存用户名和密码的网站 我看到删除它 @nima 你找到实现预期结果的方法了吗? 【参考方案1】:由于错误,该帖子已被删除
【讨论】:
我没有写 yourLoginUrl 和 urlContains 因为你说它有安全原因。如果你在线,我会去他们的地址 我可以用 (url + "/login") 代替 (""yourLoginUrl") 吗? 您可以将这些代码放在 onFinish 中,而不是 shouldInterceptRequest。但是 onFinish 有时会晚点结束,我认为这种方法更好。 点击提交后,将用户和密码发送到processContent方法。在日志中可以看到 我试了好几次了,还是不行。我输入的 yourLoginUrl & urlContains 有没有可能是错误的?【参考方案2】:您可以在单击按钮上从 webview 检查以下链接,您可以导航到 java 类并使用界面完成您的工作 Webview's html button click detection in Activity(java code)
【讨论】:
嗨。新手来了请详细说明您的答案。我找不到我的问题和你的答案之间的相关性。以上是关于如何在 Webview 中保存用户名和密码的主要内容,如果未能解决你的问题,请参考以下文章