我在我的应用程序中使用cookie在所有浏览器中都能正常工作,但在android设备中,cookie的设置速度并不像我想要的那么快,保存cookie需要一些时间,当我删除cookie时也会发生同样的情况。有什么办法可以让它更好地运作吗?提前感谢您的回答。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webview = new WebView(this);
webview.getSettings().setJavaScriptEnabled(true); // enable javascript
CookieManager.setAcceptFileSchemeCookies(true);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptCookie(true);
cookieManager.acceptCookie();
String cookie = CookieManager.getInstance().getCookie("mylink");
final Activity activity = this;
webview.setWebViewClient(new WebViewClient() {
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
Toast.makeText(activity, description, Toast.LENGTH_SHORT).show();
}
});
webview.loadUrl("mylink");
setContentView(webview);
}
在棒棒糖及其他方面,CookieManager单例本身可以正常工作。 (请参阅链接 - http://developer.android.com/reference/android/webkit/CookieManager.html)但是,在Lollipop之前,它还需要使用CookieSyncManager中的其他静态方法。在WebView上设置cookie时,以下代码适用于所有Android版本 -
CookieManager cookieManager = CookieManager.getInstance();
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
CookieSyncManager.createInstance(this);
}
cookieManager.setAcceptCookie(true);
只需启用javascript和Dom存储即可。这有助于我在我的webview android应用程序中记住我的登录详细信息。我没有使用任何CookieManager但启用此功能对我而言。
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setDomStorageEnabled(true);