【问题标题】:Android WebView HTTP Cookies not working in API 21Android WebView HTTP Cookie 在 API 21 中不起作用
【发布时间】:2015-02-09 20:27:33
【问题描述】:

我有一个使用 WebView 和 HTTP cookie 的 Android 应用程序。此应用程序适用于运行 API 19 或更低版本的 Android 设备。 API 21 不会保存 http cookie 以供以后参考。

Android WebView 代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_token);
    WebView mWebView = (WebView) findViewById(R.id.activity_main_webView1);
    mWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
    mWebView.setWebViewClient(new WebViewClient());
    mWebView.setWebChromeClient(new WebChromeClient() {
        public boolean shouldOverrideUrlLoading(WebView view, String url)
        {
            return false;
        }
    });
    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.getSettings().setGeolocationEnabled(true);
    mWebView.getSettings().setAppCacheEnabled(true);
    mWebView.getSettings().setDatabaseEnabled(true);
    mWebView.getSettings().setDomStorageEnabled(true);
    mWebView.getSettings().setAllowUniversalAccessFromFileURLs(true);
    mWebView.loadUrl("file:///android_asset/index.html");
}

Android 清单

uses-sdk android:minSdkVersion="16" android:targetSdkVersion="19"
uses-permission android:name="android.permission.INTERNET"

服务器端代码创建 cookie:

Response.Cookies("mycookie")("myvalue") = "123456789"
Response.Cookies("mycookie").Expires = Date() + 10
Response.Cookies("mycookie").Secure = True

服务器端代码读取 cookie:

Response.Write Request.Cookies("mycookie")("myvalue")
  • 这会在 WebView 中的 API 21 上返回一个空白值

当它在 API 19 或更低版本上运行时,我可以读/写 cookie 没问题。我使用 cookie 就像您访问任何使用 cookie 的网页一样。任何帮助将不胜感激。

【问题讨论】:

    标签: android cookies webview


    【解决方案1】:

    API 21 或 Lollipop 要求将其添加到您的 APP 中

    if (Build.VERSION.SDK_INT >= 21) {
        // AppRTC requires third party cookies to work
        CookieManager cookieManager = CookieManager.getInstance();
        cookieManager.setAcceptThirdPartyCookies(mWebView, true);
    }
    

    再次工作!

    【讨论】:

    猜你喜欢
    • 2015-03-22
    • 2016-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多