javascript - html webview android 中的 Cookie

标签 javascript android html cookies

嗨,我需要知道如何在 html web View 上读取 cookie。我有一个横幅要关闭它会生成一个 cookie,想法是转到另一个具有横幅的页面,他将读取 cookie 以查看用户是否已经单击了...

这是cookie代码

 function createCookie() {
    var d = new Date();
    d.setTime(d.getTime() + (1*24*60*60*1000));
    var expires = "expires="+d.toUTCString();
    document.cookie = "cookie=cookie ; " + expires+';path = http://www.pitstop.com.br/';

    document.getElementById('banner_id').style.display='none';

 }

 function getCookie(cname) {

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) == 0) return c.substring(name.length, c.length);
}
return null;
 }

 function banner_cookie(){

    var teste = getCookie('cookie');
    if(teste !=null){
        alert(teste);
        document.getElementById('banner_id').style.display='none';

    }else{
        document.getElementById('banner_id').style.display

    }

   }

最佳答案

您的许多问题似乎源于一厢情愿和误解。

例如,您的路径错误,您需要将名称传递给 cookie 脚本,而不是硬编码名称“cookie”

您需要采用经过充分测试的 cookie 脚本并正确使用它。

function getCookie(name) {
  var start = document.cookie.indexOf(name + "=");
  var len = start + name.length + 1;
  if ((!start) && (name != document.cookie.substring(0, name.length))) {
    return null;
  }
  if (start == -1) return null;
  var end = document.cookie.indexOf(';', len);
  if (end == -1) end = document.cookie.length;
  return unescape(document.cookie.substring(len, end));
}

function setCookie(name, value, expires, path, domain, secure) {
  var today = new Date();
  today.setTime(today.getTime());
  if (expires) {
    expires = expires * 1000 * 60 * 60 * 24;
  }
  var expires_date = new Date(today.getTime() + (expires));
  document.cookie = name + '=' + escape(value) +
    ((expires) ? ';expires=' + expires_date.toGMTString() : '') + //expires.toGMTString()
    ((path) ? ';path=' + path : '') +
    ((domain) ? ';domain=' + domain : '') +
    ((secure) ? ';secure' : '');
}
function deleteCookie(name, path, domain) {
  if (getCookie(name)) document.cookie = name + '=' +
    ((path) ? ';path=' + path : '') +
    ((domain) ? ';domain=' + domain : '') +
    ';expires=Thu, 01-Jan-1970 00:00:01 GMT';
}

你的脚本:

function banner_cookie(){
  var teste = getCookie('showbanner')=="true";
  document.getElementById('banner_id').style.display=teste?"block":"none";
}

并设置:

setCookie("showbanner","true",14,"/"); // 2 weeks accessible to all website

并删除

deleteCookie("showbanner","/"); 

关于javascript - html webview android 中的 Cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34633083/

相关文章:

java - BackgroundColorSpan隐藏文本选择颜色android

html - 目录 XSL

javascript - 如何将可变大小的图像居中

html - 输入类型 "search"取消按钮未在 Firefox、IE 和 Edge 中显示

android - @Ignore 和不可变字段的问题

java - 如何在 Android 应用程序中显示波斯语或阿拉伯字母 WordPress 帖子?

javascript - Bootstrap 模式奇怪的问题

Javascript - 当我在输入表单中按 Enter 键时代码正在运行

javascript - React Native w/redux : dispatch is not a function

javascript - jQuery UI 自动完成 : How to base on JSON data NOT name & Label