2015-02-09 76 views
4

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

的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") 
  • 这对API 21的WebView
  • 返回空值

当这个运行在API 19或以下,我可以读/写饼干没问题。我正在使用cookie,因为您将访问使用cookie的任何网页。任何帮助,将不胜感激。

回答

15

API 21或棒棒糖要求此项添加到您的APP再次

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

作品!

+1

谢谢!你在哪里找到这个? Android是否有“我们在升级时破坏的内容”页面? – 2015-08-20 20:34:03

+1

@DavidAmey,他们呢。 https://developer.android.com/about/versions/android-5.0-changes.html#BehaviorWebView – ITJscott 2017-01-23 14:30:17

+0

很棒,谢谢! – RonZ 2017-03-20 14:53:16