我需要帮助如何正确使用javascript:“ document.cookie ”或 如何在Android网页浏览器中使用javascript编写cookie?
我确保在设置中启用了Cookie。当我检查 通过使用“navigator.cookieEnabled”,它也返回true。
我有一段javascript代码,如下所示 到处 (例如PC浏览器,iPhone),但在Android中不起作用。
function createCookie(name) {
// cookies expired in 1 year.
var expDate = new Date();
expDate.setDate(expDate.getDate() + 365);
expDate = expDate.toGMTString();
var el = document.getElementById(name);
document.cookie = name + '=' + escape(el.value) + '; path=/ ;expires=' + expDate;
document.cookie = name + '-idx=' + escape(el.selectedIndex) + ';path=/ ; expires=' + expDate;
//alert('cookie : ' + document.cookie);
}
当我在最后一行代码中打开“提醒”评论时,Android会 只是显示空白 所有其他浏览器向我显示我刚才的cookie内容 写入。
请帮忙。 感谢。
答案 0 :(得分:4)
我得到了这个功能,对于Android 2.2,javascript的document.cookie工作正常,只需确保在你的Webview中... javascript启用如下:
yourWebViewVariable.getSettings().setJavaScriptEnabled(true);
for Android 3.1只需将其添加到您的java文件onLoadInit:
CookieManager.setAcceptFileSchemeCookies(true);
//这是专门使其工作的行,因此其他行是可选的
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptCookie(true);
cookieManager.acceptCookie();
此外,这里有一些我在尝试解决此错误时发现的链接,这对于想要将变量从Javascript发送到Webview(原生Android语言)的其他人有帮助,反之亦然。
http://android-er.blogspot.com/2011/10/run-android-java-code-from-webpage.html
http://android-er.blogspot.com/2011/10/call-javascript-inside-webview-from.html
谢谢,Goodluck!
答案 1 :(得分:1)
好的,现在我真的得到了它(window.cookie,哈哈)。
只需删除path
定义中的空格即可。似乎在我的手机上工作。
编辑:将所有字符串放在一行上,我认为它搞砸了解析。
function createCookie(name) {
// cookies expired in 1 year.
var expDate = new Date();
expDate.setDate(expDate.getDate() + 365);
expDate = expDate.toGMTString();
var el = document.getElementById(name);
document.cookie = name + '=' + escape(el.value) + '; path=/; expires=' + expDate;
document.cookie = name + '-idx=' + escape(el.selectedIndex) + '; path=/; expires=' + expDate;
//alert('cookie : ' + document.cookie); }