2014-09-11 104 views
0

我很苦惱在webview android中使用cookie和javascript一起使用。Webview中的Cookie android

我有一個位於SD卡數據的HTML頁面。這個html文件由javasript和cookie組成。我需要在webview和webview中加載這個html文件來響應javascript和cookie。

工作迄今所做的: -

中啓用JavaScript的網頁流量

WebView1.getSettings().setJavaScriptEnabled(true); 

還試圖使用CookieManager

CookieManager.getInstance().setAcceptCookie(true); 

這樣做是爲了使餅乾,WebView中的JavaScript而不是餅乾迴應。任何想法如何解決這個問題?

HTML文件如下

<!DOCTYPE html> 
<html> 
    <head> 
     <script> 
      function setCookie(cname, cvalue, exdays) { 
        var d = new Date(); 
        d.setTime(d.getTime() + (exdays*24*60*60*1000)); 
        var expires = "expires="+d.toUTCString(); 
        document.cookie = cname + "=" + cvalue + "; " + expires; 
      } 

      function getCookie(cname) { 
       var res = "No Cookie!"; 
        var name = cname + "="; 
        var ca = document.cookie.split(';'); 
        for(var i=0; i<ca.length; i++) { 
         var c = ca[i]; 
         while (c.charAt(0)==' ') c = c.substring(1); 
         if (c.indexOf(name) != -1) res = c.substring(name.length, c.length); 
        } 
       document.getElementById('txt').innerHTML = res; 
      } 
     </script><noscript>No JavaScript!</noscript> 
    </head> 

    <body onload="setCookie('id', 'Cookie is working properly!', '1');">   
     <p id="txt"> </p> 
     <center> 
      <a href="./test-2.html">Next Page</a> 
     </center> 
    </body> 
</html> 

,當我在瀏覽器中打開這個文件,它的工作的罰款。如果有人想在瀏覽器中打開這個文件,那麼請使用以下URL https://www.ypsid.com/demo/test/test-1.html

+0

你有沒有在Android清單文件中寫入外部存儲權限? – Akhil 2014-09-11 07:19:16

+0

是它在manifestife文件中聲明的.Html文件在webview中加載。在webview中打開html文件沒有問題。問題是webview沒有響應cookie – user3296352 2014-09-11 08:16:49

+0

你能分享你的'WebView'代碼嗎? – 2014-09-11 16:51:53

回答

0

如果您使用的是Android棒棒糖即SDK 21,則:

CookieManager.getInstance().setAcceptCookie(true); 

將無法​​正常工作。你需要使用:

CookieManager.getInstance().setAcceptThirdPartyCookies(true); 

我遇到了同樣的問題,上面的行工作作爲魅力。