aardio 文档
aardio 范例: 创建应用
//创建应用
//请改用微软的 WebView2(也就是 aardio 标准库里的 web.view ))
import electron.app;
var theApp = electron.app();
//这是启动electron主进程的main.js
theApp.jsMain =/**
const aardio = require('aardio') //启动RPC服务允许调aardio/electron互调函数,创建BrowserWindow主窗口
const app = require('electron').app //管理electron进程的生命周期
/*
* aardio-electron 主进程已准备就绪,
* 主窗口(BrowserWindow)已创建触发此事件,
* 可叠加注册多个回调
*/
aardio.ready( win=> {
//if( !aardio.studioInvoke ){
win.removeMenu()
//}
/*
* 不建议用下面的代码打开调试工具,
* 会有一些诡异的问题,例如不能输入中文,
* 建议改为在aardio中调用 web.socket.chrome从外部打开调试工具.
*/
// mainWindow.webContents.openDevTools ()
} )
app.on('window-all-closed', () => {
app.quit();
})
**/
// 可选在这里直接指定index.html的代码,实际开发请写到工程文件里
theApp.html = /**
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>aardio嵌入electron演示</title>
</head>
<body>
<h2 onmousedown="aardio.hitCaption();return false;"
style="-webkit-user-select: none;cursor:default;">按这里调用aardio.hitCaption()拖动窗口!</h2>
<button onclick="aardio.exit();">点这里调用aardio关闭窗口</button> <br><br>
<button id="aardio">点这里跟aardio互调一下函数</button><br><br>
<?
response.write("在electron中执行aardio代码")
?>
</body>
<script type="text/javascript">
/*导入aardio中的app.external 对象*/
aardio = require("aardio");
/*响应按钮点击事件*/
document.querySelector("#aardio").onclick = function(e){
//调用aardio中的函数,hello要调用的函数名字,后面可以跟任意个调用参数
aardio.ex.hello( "你点击了" + e.target.innerHTML,1,2,3,"有几个参数写几个" )
.then(
function(message){
document.getElementById("aardio").innerText = "aardio返回值" + message;
}
)
}
/*响应aardio服务端发起的调查任务*/
aardio.on("getUrl",function(){
return document.location.href;
});
</script>
</html>
**/
/*
在下面的external对象中指定允许electron渲染进程中使用JS直接调用的函数
下面的external 会直接转换为js中的aardio对象,在JS中require('aardio')就可以使用
*/
theApp.external = {
ex = {
hello = function(...){
win.msgbox( {...} ,"electron调用了aardio函数 hello " )
return "electron,我是aardio.ex.hello,一起玩怎么样!?"
}
}
exit = function(){
theApp.close();//关闭主窗口,退出程序
}
//如果函数名第一个字符是$,则第一个回调参数$用于表示当前客户端,可作为xcall的参数使用
$test = function($){
theApp.xcall($,"js函数")
}
}
theApp.onUrlReady = function(hSocket,url){
// 加载一个页面完成都会触发这个事件
}
/*
启动electron,下面使用一个aardio表对象指定的启动参数,
在electron的主进程、渲染进程中都可以直接通过 aardio.startEnviron 访问。
*/
theApp.start(
//electron打开的第一个页面,必须指定应用程序目录下的aardio代码文件
indexUrl = "/res/main.aardio";
//指定electron创建浏览器窗口的启动参数, 可以不写,aardio会自动给出正确参数
browserWindow = {
frame = false;
webPreferences = {
nodeIntegration = true;
}
}
/*
可选用args字段指定Chrome命令行参数,
必须在main.js中创建窗口以前就导入aardio模块才会生效
*/
args ={
}
);
//调查任务结束,JS代码汇报结果到这里
theApp.callback("getUrl",function(hSocket,result,err){
win.msgbox(result,"打开了页面")
})
theApp.onReady = function(){
//对所有页面发起调查任务,
theApp.survey("getUrl");
}
win.loopMessage();
Markdown 格式