Javascript 封送C和Emscripten-回调
我试图创建一个C方法并将其链接到一个现有的JavaScript方法,但我在使用和使用方面遇到了一些困难。 我试图在代码中包含我的问题,因为这样更容易理解 下面是javascript方法Javascript 封送C和Emscripten-回调,javascript,c#,interop,marshalling,emscripten,Javascript,C#,Interop,Marshalling,Emscripten,我试图创建一个C方法并将其链接到一个现有的JavaScript方法,但我在使用和使用方面遇到了一些困难。 我试图在代码中包含我的问题,因为这样更容易理解 下面是javascript方法 // What are the types of those parameters ? JS_WebRequest_SetHandler: function (request, arg, onresponse) { var http = wr.requestInstances[request];
// What are the types of those parameters ?
JS_WebRequest_SetHandler: function (request, arg, onresponse)
{
var http = wr.requestInstances[request];
http.onload = function http_onload(e) {
// ...
var byteArray = new Uint8Array(http.response);
var buffer = _malloc(byteArray.length);
HEAPU8.set(byteArray, buffer);
Runtime.dynCall('viiii', onresponse, [arg, http.status, buffer, byteArray.length]);
// ...
}
这里是C的内容
// Are the types right ?
[DllImport("__Internal")]
private static extern void JS_WebRequest_SetHandler(int request, IntPtr arg, IntPtr onresponse);
public void SetHandler(string arg) // Example with a string
{
// How can I link the OnResponse method to the JS_WebRequest_SetHandler onresponse ?
// What types should I use ?
JS_WebRequest_SetHandler(request, arg, onresponse);
}
// Are those types right ?
public void OnResponse(IntPtr arg, IntPtr status, IntPtr buffer, IntPtr length)
{
// How can I extract the data of each argument ?
}
非常感谢您为Unity WebGL target这样做对了吗?您找到解决方案了吗?@polkovnikov.ph Yep这与Unity WebGL及其处理http请求的方式有关。但根据Unity 5.2的新版本,这可能不再是一个问题,因为他们采用了新的处理方式。它具体写在哪里?关于JS插件的页面根本没有提到Runtime.dynCall。顺便说一下,这是我的代码缺少的部分。非常感谢。