Cookie 不适用于 WebView Android
Cookies doesn't work with WebView Android
我正在尝试配置 Cookies 以与 WebView 一起工作,但它不起作用,当我配置 WebView 以加载 https://www.google.es 时,出现了 Cookies window,当我接受它并在 WebView 中再次加载(不离开应用程序)时,它再次出现。
我正在使用 Android 10 (LineageOS 17.1) 在物理 phone 中测试此代码。我在小米也试过,但都不起作用,当我加载页面时总是出现 Cookies window。
我尝试了一些教程和其他 Whosebug post 但 none 有效,比如像这样配置 CookieManager:
CookieManager.getInstance().setAcceptCookie(true);
或像这样的其他一些代码:
if (android.os.Build.VERSION.SDK_INT >= 21) {
CookieManager.getInstance().setAcceptThirdPartyCookies(mWebView, true);
} else {
CookieManager.getInstance().setAcceptCookie(true);
}
这是我的代码:
MainActivity.java
WebView myWebView = (WebView) findViewById(R.id.webview);
WebSettings webSettings = myWebView.getSettings();
myWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return false;
}
});
webSettings.setJavaScriptEnabled(true);
myWebView.loadUrl("https://www.google.es");
AndroidManifest.xml
我有 <uses-permission android:name="android.permission.INTERNET" />
权限,我还需要其他权限吗?
使用CookieSyncManager
保存:
webview.setWebViewClient(new WebViewClient() {
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
}
public void onPageFinished(WebView view, String url) {
CookieSyncManager.getInstance().sync();
}
);
我正在尝试配置 Cookies 以与 WebView 一起工作,但它不起作用,当我配置 WebView 以加载 https://www.google.es 时,出现了 Cookies window,当我接受它并在 WebView 中再次加载(不离开应用程序)时,它再次出现。
我正在使用 Android 10 (LineageOS 17.1) 在物理 phone 中测试此代码。我在小米也试过,但都不起作用,当我加载页面时总是出现 Cookies window。
我尝试了一些教程和其他 Whosebug post 但 none 有效,比如像这样配置 CookieManager:
CookieManager.getInstance().setAcceptCookie(true);
或像这样的其他一些代码:
if (android.os.Build.VERSION.SDK_INT >= 21) {
CookieManager.getInstance().setAcceptThirdPartyCookies(mWebView, true);
} else {
CookieManager.getInstance().setAcceptCookie(true);
}
这是我的代码:
MainActivity.java
WebView myWebView = (WebView) findViewById(R.id.webview);
WebSettings webSettings = myWebView.getSettings();
myWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return false;
}
});
webSettings.setJavaScriptEnabled(true);
myWebView.loadUrl("https://www.google.es");
AndroidManifest.xml
我有 <uses-permission android:name="android.permission.INTERNET" />
权限,我还需要其他权限吗?
使用CookieSyncManager
保存:
webview.setWebViewClient(new WebViewClient() {
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
}
public void onPageFinished(WebView view, String url) {
CookieSyncManager.getInstance().sync();
}
);