aardio 文档
aardio 范例: web.form 入门
//入门
import win.ui;
/*DSG{{*/
var winform = win.form(text="web.form 入门";right=892;bottom=566;scroll=1)
winform.add()
/*}}*/
/*。
web.form 基于任何 Windows 系统都自带的内核,生成的 EXE 体积很小。
即使现在的新系统删除 IE 浏览器,IE 内核浏览器的控件仍作为操作系统组件被保留
(这是因为 IE 内核网页控件因其接口简洁,曾像 static 控件一样普及并被广泛用于桌面程序)。
Win10/11 自带 IE11,不自带 IE11 的旧系统已经很罕见。
改用 web.view 库可支持系统自带的 Edge Chromium 内核。
相比 web.form ,web.view 更强大、更现代化、速度更快、内核更新。
但 web.form 属于进程内控件,COM 接口交互更为简单直接,
例如 JS 与 aardio 可以更直接方便的互调。
但 web.view 则只能以异步的方式实现跨进程调用。
*/
import web.form;
var wb = web.form( winform );//参数 @1 指定嵌入窗口(可以是 winform 或 static,custom 等控件对象)。
import console;
wb.external={
tab = {abc=1;b=2};
aardioArray = function(){
return wb.jsArray({12;23;34});
};
log = function(...){
console.log(...)
}
}
import console;
wb.html = /**
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript">
$enum = function(obj,callback,thisObj){
if( obj instanceof Array ){
for(var i=0;i<obj.length;i++){
callback.call(thisObj||window,i,obj[i],obj);
}
}
else if( obj instanceof Object ){
for( k in obj){
callback.call(thisObj||window,k,obj[k],obj);
}
}
else{
if(typeof(obj)=="unknown"){
var array = new VBArray(obj).toArray() //注意多维 aardio 数组转换为 JScript 会转换为单维数组,改用 JSON 传输参数可支持更多 JS 对象
for (var i = 0; i < array.length; i++) {
callback.call(thisObj||window,i,array[i],array );
}
}
else if( obj ) {
var e = new Enumerator(obj);
var k;
if(!e)
return;
for (;!e.atEnd();e.moveNext()){
k = e.item();
callback.call(thisObj||window,k,obj[k],obj);
}
}
}
}
</script>
<script type="text/javascript">
//其他Js代码
</script>
<style type="text/css">
body {
font: 10.5pt/1.3;
}
</style>
</head>
<body style="margin:20px;font-size:14px">
<button id="myId">
点这里试一试
</button>
<br><br>
web.form 基于任何 Windows 系统都自带的内核,生成的 EXE 体积很小。
即使现在的新系统删除 IE 浏览器,IE 内核浏览器的控件仍作为操作系统组件被保留
(这是因为 IE 内核网页控件因其接口简洁,曾像 static 控件一样普及并被广泛用于桌面程序)。
Win10/11 自带 IE11,不自带 IE11 的旧系统已经很罕见。
<br><br>
改用 web.view 库可支持系统自带的 Edge Chromium 内核。
相比 web.form ,web.view 更强大、更现代化、速度更快、内核更新。
但 web.form 属于进程内控件,COM 接口交互更为简单直接,
例如 JS 与 aardio 可以更直接方便的互调。
但 web.view 则只能以异步的方式实现跨进程调用。
</body>
</html>
**/
var js = /**
external.log( "Hello, aardio!" )
external.log( "Welcome to aardio!",event.srcElement.id );
//枚举js数组
$enum(
[1,2,3],
function(v,i){
external.log(v,i)
}
)
//枚举js对象
$enum(
{a:123,b:456},
function(k,v){
external.log(k,v)
}
)
//枚举aardio数组
$enum(
external.aardioArray(),
function(k,v){
external.log(k,v)
}
)
//枚举aardio对象
$enum(
external.tab,
function(k,v){
external.log(k,v)
}
)
**/
wb.eventScript(js,"myId","onclick")
winform.show();
win.loopMessage();
Markdown 格式