【发布时间】:2022-01-26 04:37:08
【问题描述】:
有没有办法让用户在重启后保持登录状态而不在本地保存用户名和密码?我只想在应用关闭时暂停会话,然后在打开时恢复。
都试过了:
myWebView.getSettings().setDomStorageEnabled(true);
myWebView.getSettings().setAppCacheEnabled(true);
还尝试了 CookieManager 并设法做我想做的事,但由于某种原因,它停止工作并在应用程序退出时继续注销用户(我还是新手,我不知道发生了什么,无法修复它) .所以我试图找到一种不同的方法来做到这一点。
我的 MainActivity.java:
public class MainActivity extends AppCompatActivity {
public DrawerLayout dLayout;
private WebView myWebView;
public ActionBarDrawerToggle actionBarDrawerToggle;
public void setActionBarTitle(String title) {
getSupportActionBar().setTitle(title);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
setTitle("Updates");
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//CREATE A FOLDER
File file = this.getBaseContext().getExternalFilesDir("downloads");
if (!file.exists())
file.mkdir();
setNavigationDrawer(); // call method
dLayout = findViewById(R.id.my_drawer_layout);
actionBarDrawerToggle = new ActionBarDrawerToggle(this, dLayout, R.string.nav_open, R.string.nav_close);
dLayout.addDrawerListener(actionBarDrawerToggle);
actionBarDrawerToggle.syncState();
// to make the Navigation drawer icon always appear on the action bar
Objects.requireNonNull(getSupportActionBar()).setDisplayHomeAsUpEnabled(true);
myWebView = findViewById(R.id.activity_main_webview);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
myWebView.getSettings().setDomStorageEnabled(true);
myWebView.getSettings().setAppCacheEnabled(true);
myWebView.setWebChromeClient(new WebChromeClient());
String url = "http://192.168.43.105/public_html/central/updates.php";
myWebView.loadUrl(url);
myWebView.setWebViewClient(new WebViewClient());
myWebView.setWebViewClient(new WebViewClient() {
public void onReceivedError(WebView webView, int errorCode, String description, String failingUrl) {
Toast.makeText(MainActivity.this, "Oh no! " + description, Toast.LENGTH_SHORT).show();
}
public void onPageFinished(WebView webView, String url) {
CookieManager.getInstance().flush();
}
});
myWebView.getSettings().setSupportZoom(true);
myWebView.getSettings().setBuiltInZoomControls(true);
myWebView.getSettings().setDisplayZoomControls(false);
myWebView.getSettings().setUseWideViewPort(false);
}
【问题讨论】:
标签: java android android-studio session webview