gpt4 book ai didi

java - 如何让 WebView 始终控制登录状态而不丢失登录凭据?

转载 作者:行者123 更新时间:2023-11-30 05:11:19 33 4
gpt4 key购买 nike

我正在创建我的第一个 Android 应用程序,我以为我已经完成了,但最近发现用户似乎随机注销。

我正在使用 WebView加载 URL 并且我唯一一次操作 WebViewshouldOverrideUrlLoading在我的WebViewClient为了检查外部链接。这是要点:

@Override
public boolean shouldOverrideUrlLoading(WebView webview, WebResourceRequest request) {
String RequestUrl = request.getUrl().toString();
if(request.getUrl().getHost() != null) {
changePage(RequestUrl);
}
return true;
}

public void changePage(String UrlString){
Uri RequestUri = Uri.parse(UrlString);

if(RequestUri.getHost() != null) {
if ((UrlString.contains("http://") || UrlString.contains("https://")) && RequestUri.getHost().equals(getString(R.string.app_domain))) {
webview.loadUrl(UrlString);
} else {
Intent intent = new Intent(Intent.ACTION_VIEW, RequestUri);
webview.getContext().startActivity(intent);
}
}
}

不应该导致问题。

我还使用网站的登录页面来允许用户访问,目的是让网页管理登录/注销状态。

我的问题不是用户无法登录,或者他们无法通过应用程序浏览网站,而是在浏览 WebView 一段时间后/website 将失去初始登录提供的身份验证,从而有效地注销用户。 (我指的所有这些导航都是应用程序内/内部网站链接外部工作正常——我认为)。

这可能是我处理链接的方式造成的吗?我是否需要创建一些功能来根据请求重新插入 cookie,以创建一致的登录体验?

如果您需要更多信息,请告诉我。谢谢!

最佳答案

试试这个

 WebView.getSettings().setAppCacheEnabled(true);
WebView.getSettings().setAppCachePath("/data/data" + getPackageName() + "/cache");
WebView.getSettings().setSaveFormData(true);
WebView.getSettings().setDatabaseEnabled(true);
WebView.getSettings().setDomStorageEnabled(true);
CookieManager.getInstance().acceptCookie();
CookieManager.setAcceptFileSchemeCookies(true);

关于java - 如何让 WebView 始终控制登录状态而不丢失登录凭据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53697266/

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