2011-03-08 79 views
0

我写了下面的HTML文件在Android的WebView中处理Cookie

<code> 
<html> 
    <head> 
     <script text ="text/javascript"> 
      function createCookie(name,value,days) { 
       if (days) { 
        var date = new Date(); 
        date.setTime(date.getTime()+(days*24*60*60*1000)); 
        var expires = "; expires="+date.toGMTString(); 
       } 
       else var expires = ""; 
       document.cookie = name+"="+value+expires+"; path=/"; 
      } 

      function readCookie(name) { 
       var nameEQ = name + "="; 
       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,c.length); 
        if (c.indexOf(nameEQ) == 0) return(c.substring(nameEQ.length,c.length)); 
       } 
       return null; 
      } 

      function modifyCookie() { 
       var newsessid = document.getElementById('userid').value; 
       //var oldsessid = document.getElementById('userid').value; 
       if(newsessid != "") { 
         eraseCookie('session id') ; 
         createCookie('session id', newsessid, 1); 
         //alert(readCookie('session id')); 
         document.getElementById('cookies').innerHTML = readCookie('session id'); 
         return true; 
       } 

       //.value = readCookie('session id'); 
      } 

      function eraseCookie(name) { 
       createCookie(name,"",-1); 
      } 

      function fillTextBox() { 
       //alert("Running"); 
       document.getElementById('cookies').innerHTML = readCookie('session id'); 
       document.getElementById('userId').value = document.getElementById('sessid').value; 
      } 
     </script> 
    <head> 
    <body onload="fillTextBox()" style = "height : 480px; width : 320px; background-image : url('investmentbanking/background2.png'); background-repeat : no-repeat"> 
     <div style = "position : absolute; left = 80px; top = 160px;"> 
      <label style = "color : #ffffff;">Session Id :</label> 
      <input type="text" id="userid" name="session"/> 
      <br/><br/> 
      <input type="hidden" id ="sessid" name="user" value="truce"/> 
      <input type="button" onclick="modifyCookie()" value="Modify Cookie" /> 
      <br/> 
      <label>Stored Cookies : <label/><label id = "cookies"/> 
     </div> 
    </body> 
</html> 
</code> 

当我打开我的android的web视图这个文件,并修改文本框的内容,并击中了修改cookie的按钮,文本旁边的“饼干”不会改变。代码在桌面上的Firefox和IE中正常工作,但不在这里......可能是什么问题?

回答

1

您必须初始化一个与应用绑定的CookieSyncManager实例。这里是我的:

final Context myApp = this; 
CookieSyncManager.createInstance(myApp); 
CookieSyncManager.getInstance().sync(); 

只需将此加入到加载web视图的活动的OnCreate()方法。