Introdution
DAE介绍
DAE是一个轻量级的桌面Web应用程序引擎,它允许开发者使用HTML5,CSS3以及JavaScript等前端开发技术方便快速地进行桌面应用程序开发。
DAE介绍
DAE是一个轻量级的桌面Web应用程序引擎,它允许开发者使用HTML5,CSS3以及JavaScript等前端开发技术方便快速地进行桌面应用程序开发。
喜闻乐见的Demos
一个登录窗口演示
CSS3动画库应用于DAE的例子
利用开源项目快速实现支持语法高亮、Emmet插件的编辑器的例子
聊天室服务端
聊天室客户端,请配合聊天室服务端使用
更多Demo
应用程序配置文件
应用程序的配置文件。
{ 'name': 'Deeepin App Engine', 'version': '1.1.0', 'description': '轻量级Web桌面应用引擎', 'path': 'assets/', 'icon': 'assets/img/icon.png', 'width': 800, 'height': 600, 'visible': true, 'resizable': true, 'frameless': false, 'transBackground': false }
主模块
用于执行一些全局的引擎相关操作。
String version()
获取版本号
String manifest(String name, String default = '')
获取Manifest
String normUrl(String url)
根据当前页面获取URL
void browse(String url)
打开浏览器
void setData(String name, String value)
保存本地数据
String getData(String name)
获取本地数据
void removeData(String name = null)
删除本地数据
void closeAllWindows()
关闭所有窗口
void clearCaches()
TODO 清除缓存
当前窗口模块
Window类的一个实例,Window类实例化时产生,用于操作当前窗口。
系统模块
用于读取系统或应用程序信息或执行系统命令。
String type()
获取系统类型
String platform()
获取系统平台
String arch()
获取系统位数
String release()
获取系统版本
String version()
获取系统版本
String machine()
获取机器类型
String processor()
获取CPU信息
String hostname()
获取当前用户名
String uuid()
获取UUID
String argvs()
获取应用程序参数
String exec(String command)
执行命令并返回输出内容
String system(String command)
执行命令并返回
boolean run(String path)
打开文件
void exit(int message = 0)
退出
void reboot()
TODO 重启
void shutdown()
TODO 关机
文件系统模块
赋予JavaScript文件系统操作权限。
String listDir(String dirname = '.')
读取目录内容
String resourcesPath()
获取资源目录
String desktopPath()
获取桌面目录
String documentsPath()
获取文档目录
String fontsPath()
获取字体目录
String applicationsPath()
获取程序目录
String musicPath()
获取音乐目录
String moviesPath()
获取视频目录
String picturesPath()
获取图片目录
String tempPath()
获取临时送文件目录
String homePath()
获取用户目录
String dataPath()
获取本应用程序数据目录
String cachePath()
获取本应用程序缓存目录
String genericDataPath()
获取应用程序数据目录
String genericCachePath()
获取应用程序缓存目录
String runtimePath()
获取运行通信文件目录
String configPath()
获取本应用程序配置文件目录
String genericConfigPath()
获取应用程序配置文件目录
String downloadPath()
获取下载目录
String absPath(String path = '')
获取绝对路径
String normPath(String path = '')
格式化路径
String localUrl(String path = '')
获取网页用路径
boolean isAbsPath(String path)
判断是否绝对路径
boolean isFile(String filename)
文件存在
boolean isDir(String dirname)
目录存在
boolean exists(String path)
路径存在
int fileSize(String filename)
文件大小
boolean mkfile(String filename)
创建文件
boolean mkdir(String dirname)
创建目录
boolean copy(String path1, String path2)
拷贝
boolean move(String path1, String path2)
移动文件
boolean remove(String path)
删除文件
boolean explore(String path)
在资源管理器中显示文件,只测试过Windows
编码模块
用于弥补JavaScript所不支持的编码解码。
String base64Encode(String data)
Base64编码
String base64Decode(String data)
Base64解码
String md5(String data)
md5编码
String sha1(String data)
sha1编码
String sha224(String data)
sha224编码
String sha256(String data)
sha256编码
String sha384(String data)
sha384编码
String sha512(String data)
sha512编码
窗口类
用于创建新窗口。
int x
窗口横坐标
int y
窗口纵坐标
int width
窗口宽度
int height
窗口高度
int maximumWidth
窗口最小宽度
int maximumHeight
窗口最小高度
int minimumWidth
窗口最大宽度
int minimumHeight
窗口最大高度
boolean enabled
窗口可用状态
boolean visible
窗口是否可见
Window(String url = '', int width = null, int height = null)
创建新窗口
Object opener()
获取父窗口对象
void alert(int msec = 0)
任务栏闪烁
String eval(String javaScript)
执行简单的JS,用于某些情况下窗口之间的通信
String capture(boolean fullScreen = false, String filename = '')
截图
void showInspector()
打开开发者工具
void hideInspector()
关闭开发者工具
void findText(String text)
搜索文本
void setIcon(String icon)
设置窗口图标
void setModified(boolean modified)
设置内容是否已被修改(标题中需要有[*]标志)
boolean isModified()
获取内容是否已被修改
void setModal(boolean modal)
设置是否模态
boolean isModal()
获取是否模态
void setShowInTaskbar(boolean showInTaskbar)
设置是否在任务栏中显示
boolean isShowInTaskbar()
获取是否在任务栏中显示
void setStaysOnTop(boolean staysOnTop)
设置窗口是否置顶
boolean isStaysOnTop()
获取窗口是否置顶
void setFrameless(boolean frameless)
设置是否显示系统边框
boolean isFrameless()
获取是否显示系统边框
void setTransBackground(boolean transBackground)
设置是否背景透明
boolean isTransBackground()
获取是否背景透明
void setTransMouseEvent(boolean transMouseEvent)
设置是否鼠标事件穿透
boolean isTransMouseEvent()
获取是否是否鼠标事件穿透
void setOpacity(float opacity)
设置窗口不透明度
float getOpacity()
获取窗口不透明度
void setResizable(boolean resizable)
设置大小是否可调整
boolean isResizable()
获取大小是否可调整
void setResizableX(boolean resizableX)
设置宽度是否可调整
boolean isResizableX()
获取宽度是否可调整
void setResizableY(boolean resizableY)
设置高度是否可调整
boolean isResizableY()
获取高度是否可调整
void setMinimizable(boolean minimizable)
设置是否可最小化
boolean isMinimizable()
获取是否可最小化
void setMaximizable(boolean maximizable)
设置是否可最大化
boolean isMaximizable()
获取是否可最大化
void setClosable(boolean closable)
设置是否可关闭
boolean isClosable()
获取是否可关闭
boolean isMinimized()
获取是否已最小化
boolean isMaximized()
获取是否已最大化
boolean isFullScreen()
获取是否已最大化
void minimize()
最小化
void normalize()
还原
void maximize()
最大化
void showFullScreen()
全屏
void setPos(int x, int y)
设置窗口坐标
void setSize(int width, int height)
设置窗口尺寸
void setMinSize(int width, int height)
设置窗口最小尺寸
void setMaxSize(int width, int height)
设置窗口最大尺寸
void setResizerSize(int size)
设置尺寸控制大小
Object getResizerSize()
获取尺寸控制大小
void setResizerMargin(int margin)
设置尺寸控制边距
Object getResizerMargin()
获取尺寸控制边距
boolean isDraging()
是否正在拖动
void dragStart()
开始拖动
void dragStop()
结束拖动
void activate()
窗口获取焦点
boolean isActive()
窗口是否已获得焦点
void setEnabled(boolean enabled)
设置窗口可用状态
boolean isEnabled()
窗口是否可用
void setVisible(boolean visible)
设置窗口可见状态
boolean isVisible()
窗口是否显示
void show()
显示窗口
void hide()
隐藏窗口
void close()
关闭窗口
show()
窗口显示事件
hide()
窗口隐藏事件
focus()
窗口获得焦点事件
blur()
窗口失去焦点事件
close()
窗口关闭事件
move(int x, int y, int oldX, int oldY)
窗口移动事件
resize(int width, int height, int oldWidth, int oldHeight)
窗口大小变化事件
statechange()
窗口状态变化事件
mouseenter()
鼠标进入事件
mouseleave()
鼠标离开事件
对话框类
继承于Window类,对话框将置于父窗口上方。
Dialog(String url = '', int width = null, int height = null)
创建新对话框
文件选择对话框类
用于创建文件选择对话框。
FileDialog(String caption = '', String directory = '')
创建新对话框
void setCaption(String caption)
设置对话框标题
void setDirectory(String directory)
设置对话框目录
void setAcceptMode(int acceptMode)
设置打开、保存模式
void setFileMode(int fileMode)
设置文件选择模式
void setDefaultSuffix(String defaultSuffix)
设置默认保存扩展名
void selectFile(String filename)
设置默认选中文件
void setFilters(String filters)
选中过滤器
void addFilter(String newFilter)
添加过滤器
void selectFilter(String defFilter)
设置默认过滤器
String exec()
显示文件选择对话框
菜单类
用于创建菜单。
String title
菜单标题
boolean enabled
可用状态
boolean visible
是否可见
Menu(String title = '', String icon = '')
创建菜单
void setTitle(String text)
设置菜单标题
void setIcon(String icon)
设置菜单图标
void addItem(item = null)
添加子菜单、菜单项或分割线(默认为分割线)
void exec(x = null, y = null)
显示菜单(默认为鼠标位置)
菜单项类
用于创建菜单项。
String text
菜单项文字
boolean checkable
菜单项是否可选
boolean checked
菜单项是否选中
boolean enabled
菜单项可用状态
boolean visible
菜单项是否可见
MenuItem(String text, String icon = '', boolean checkable = false)
创建菜单项
void setText(String text)
设置菜单项文字
void setIcon(String icon)
设置菜单项图标
void setCheckable(boolean checkable)
设置菜单项可选性
void setShortcut(String shortcut)
设置菜单项快捷键
setEnabled(boolean enabled)
设置可用性
setChecked(boolean checked)
设置是否选中
toggle()
切换选中状态
hover()
触发鼠标经过事件
trigger()
触发鼠标选中事件
hover
鼠标经过事件
trigger
菜单项选中事件
系统托盘图标类
用于创建系统托盘图标。
String toolTip
工具提示
boolean enabled
可用状态
boolean visible
是否可见
TrayIcon(String toolTip = '', String icon = '')
创建系统托盘图标
void setToolTip(String toolTip)
设置工具提示
void setIcon(String icon)
设置图标
void setContextMenu(DAE.Menu menu)
设置右键菜单
boolean isVisible()
获取是否可见
boolean supportsMessages()
获取是否支持消息弹泡
boolean isSystemTrayAvailable()
获取是否支持系统托盘图标
void showMessage(String title, String message, String icon = '', int msec = 10000)
显示托盘消息
void setVisible(boolean visible)
设置可见性
void show()
显示
void hide()
隐藏
activate(int reason)
托盘图标激活事件
reason {1: Unknown, 2: Context, 3: DoubleClick, 4: Trigger, 5: MiddleClick}
messageclick()
托盘消息点击事件
文件读写类
用于读写文件。
File(String filename, String mode = 'r', String encoding = 'utf-8')
创建文件读写对象
String readText(int size = -1)
读取文本(默认读取全部)
String readBase64(int size = -1)
读取Base64形式数据(默认读取全部)
String readTextLine(int size = -1)
读取文本行(默认读取全部)
String readBase64Line(int size = -1)
读取行Base64数据(默认读取全部)
boolean writeText(String data)
写入文本数据
boolean writeBase64(String data)
写入Base64数据
void seek(int offset, int whence = 0)
移动文件指针位置whence {0: start, 1: current, 2: end}
int tell()
获取文件指针位置
void close()
关闭文件
文件下载类
用于创建文件下载进程。
Downloader(String url, String filename = null, boolean resume = false)
创建文件下载进程(resume:是否断点续传)
String getFilename()
获取文件路径
void start()
开始下载任务
void stop()
停止下载任务
void cancel()
取消下载任务
start()
开始事件
progress(int loaded, int total)
进度变化事件
finish(int total)
完成事件
error(int errno, str message)
错误事件
子进程类
用以创建子进程并实现进程间通信。
Process(String encoding = null)
创建子进程
void start(String command)
启动进程
boolean waitForStarted(int msec = 30000)
等待进程开始
boolean waitForFinished(int msec = 30000)
等待进程完成
void setStdInFile(String filename)
设置输入文件
void setStdOutFile(String filename)
设置输出文件
void setStdErrFile(String filename)
设置错误输出文件
void setStdOutProcess(DAE.Process process)
设置输出进程
void send(String data)
写入信息
int state()
获取状态码
String stateStr()
获取状态信息
int errno()
获取错误码
String errorStr()
获取错误信息
int exitCode()
获取退出码
int exitStatus()
获取退出状态码
String exitStatusStr()
获取退出状态信息
String program()
获取进程名
String argumentList()
获取参数列表
String arguments()
获取参数
void setWorkingDirectory(String directory)
设置工作目录
String workingDirectory()
获取工作目录
String systemEnvironment()
获取环境变量
start()
启动事件
error(int errno, str message)
错误事件
statechange(int state, str message)
状态变化事件
stdout(str message)
标准输出事件
stderr(str message)
标准错误事件
finish(int exitCode, int exitStatus, str message)
完成事件
套接字服务端类
用以创建套接字服务端。
SocketServer(String encoding = 'utf-8', int timeout = null)
创建套接字服务端
boolean listen(port)
监听端口
void close()
停止监听
open()
启动事件
connect(DAE.SocketConn conn)
连接事件
message(DAE.SocketConn conn, String message)
消息接收事件
disconnect(DAE.SocketConn conn)
连接断开事件
close()
服务端关闭事件
error(int, String message)
错误事件
套接字连接类
SocketConn实例由SocketServer接收到连接后产生,无法主动实例化。
int send(message)
发送数据
void close()
关闭连接
message(String messge)
消息接收事件
close()
连接关闭事件
error(int errno, String messge)
错误事件
套接字客户端类
HTML5中使用的是WebSocket协议,该类用以创建普通Socket客户端。
SocketClient(String encoding = 'utf-8')
创建套接字客户端
boolean connect(String host, int port)
连接Socket服务端
int send(String message)
发送数据
void close()
关闭连接
open()
连接事件
message(String message)
消息接收事件
close()
关闭事件
error(int errno, String message)
错误事件