Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Unity WebGL cookies don';行不通_Javascript_Php_Unity3d - Fatal编程技术网

Javascript Unity WebGL cookies don';行不通

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

有人知道为什么这个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*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");
   ....
}