Javascript Unity WebGL cookies don';行不通
有人知道为什么这个set/get cookie脚本在Unity WebGL中不起作用吗? 脚本作为javascript插件存储在unity项目中 从C#调用时,脚本不会设置cookies 我调用它来设置cookie,然后当我返回到同一个站点并尝试读取cookie时,它们不存在——只是返回空白Javascript Unity WebGL cookies don';行不通,javascript,php,unity3d,Javascript,Php,Unity3d,有人知道为什么这个set/get cookie脚本在Unity WebGL中不起作用吗? 脚本作为javascript插件存储在unity项目中 从C#调用时,脚本不会设置cookies 我调用它来设置cookie,然后当我返回到同一个站点并尝试读取cookie时,它们不存在——只是返回空白 setCookie: function (cname, cvalue, exdays) { var d = new Date(); d.setTime(d.getTime() + (exdays
setCookie: function (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 + ";path=/";
console.log('set cookie='+document.cookie);
}
getCookie: function (cname) {
var ret="";
var name = cname + "=";
var decodedCookie = decodeURIComponent(document.cookie);
console.log('get cookie='+decodedCookie);
var ca = decodedCookie.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) {
ret=c.substring(name.length, c.length);
break;
}
}
var buffer = _malloc(lengthBytesUTF8(ret) + 1);
writeStringToMemory(ret, buffer);
return buffer;
},
两者都是空白的。有人知道发生了什么吗?我在firefox上试过了
谢谢您的javascript需要先字符串化参数字符串,然后才能使用它们。例如,在getCookie中:var name=Pointer_stringify(cname)+“=”;javascript需要先字符串化参数字符串,然后才能使用它们。例如,在getCookie中:var name=Pointer_stringify(cname)+“=”;
using System.Runtime.InteropServices;
public class LocalLogin : MonoBehaviour {
[DllImport("__Internal")]
private static extern string getCookie(string name);
[DllImport("__Internal")]
private static extern void setCookie(string cname, string cvalue, int exdays);
void Start() {
setCookie("session","ruh3uhnoh",7);
setCookie("userID","id123",7);
string session=getCookie("session);
string id=getCookie("userID");
....
}