import win.ui;
/*DSG{{*/
var winform = win.form(text="WebView2 传输二进制字节串";right=757;bottom=467)
winform.add()
/*}}*/
import web.view;
var wb = web.view(winform);
var imageBuffer = string.loadBuffer("~\example\Graphics\.gdip.jpg");
import wsock.tcp.asynHttpServer;
//如果建立 aardio 工程下面这句可以省略
wb.asynHttpServer = wsock.tcp.asynHttpServer();
//下面模拟 aardio 工程文件结构,如果建立了工程下面的代码都可以省略。
wb.asynHttpServer.run({
//处理 HTTP 请求
["/res/image.aardio"] = function(){
response.contentType = "image/jpeg";
response.writeBuffer(imageBuffer);//输出图像数据
};
//响应 HTTP 请求,直接回复 HTML 代码
["/index.html"] = /***
网页里写相对路径就可以
***/
} );
wb.external = {
getNativeBuffer = function(){
return imageBuffer;
};
setJsTypedArrayByRef = function(jsUint8Array){
//print("数组长度",jsUint8Array.size);
//print("数组元素",jsUint8Array[0]);// JS 数组起始索引为 0
};
setJsByteArray = function(byteArray){
//JS 数组转换为 buffer
var buf = raw.buffer({BYTE data[]=byteArray})
//写入 buffer 到文件
//io.file.write("/test.jpg",buf);
};
}
//打开网页,自动识别并支持 wsock.tcp.asynHttpServer 或 wsock.tcp.simpleHttpServer 服务端
wb.go("/index.html");
//传 buffer 给 JS 函数
wb.xcall("setNativeBuffer",imageBuffer);
winform.show();
win.loopMessage();