【发布时间】: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 你找到实现预期结果的方法了吗?
标签: java android android-recyclerview webview one-time-password