Introdution

DAE介绍

DAE是一个轻量级的桌面Web应用程序引擎,它允许开发者使用HTML5,CSS3以及JavaScript等前端开发技术方便快速地进行桌面应用程序开发。

Demos

喜闻乐见的Demos

manifest.json

应用程序配置文件

Intro

应用程序的配置文件。

Codes

{
	'name': 'Hybrid 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
}

DAE

主模块

Introdution

用于执行一些全局的引擎相关操作。

Methods

  • 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 清除缓存

DAE.app

当前窗口模块

Introdution

Window类的一个实例,Window类实例化时产生,用于操作当前窗口。

Properties

  • 详见Window类。

Methods

  • 详见Window类。

Events

  • 详见Window类。

DAE.sys

系统模块

Introdution

用于读取系统或应用程序信息或执行系统命令。

Methods

  • 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 关机

DAE.fs

文件系统模块

Introdution

赋予JavaScript文件系统操作权限。

Methods

  • 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

DAE.codec

编码模块

Introdution

用于弥补JavaScript所不支持的编码解码。

Methods

  • 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编码

Window

窗口类

Introdution

用于创建新窗口。

Properties

  • int x

    窗口横坐标

  • int y

    窗口纵坐标

  • int width

    窗口宽度

  • int height

    窗口高度

  • int maximumWidth

    窗口最小宽度

  • int maximumHeight

    窗口最小高度

  • int minimumWidth

    窗口最大宽度

  • int minimumHeight

    窗口最大高度

  • boolean enabled

    窗口可用状态

  • boolean visible

    窗口是否可见

Methods

  • 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()

    关闭窗口

Events

  • 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()

    鼠标离开事件

DAE.Dialog

对话框类

Introdution

继承于Window类,对话框将置于父窗口上方。

Properties

  • 详见Window类。

Methods

  • Dialog(String url = '', int width = null, int height = null)

    创建新对话框

  • 详见Window类。

Events

  • 详见Window类。

DAE.FileDialog

文件选择对话框类

Introdution

用于创建文件选择对话框。

Methods

  • 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()

    显示文件选择对话框

DAE.Menu

菜单类

Introdution

用于创建菜单。

Properties

  • String title

    菜单标题

  • boolean enabled

    可用状态

  • boolean visible

    是否可见

Methods

  • Menu(String title = '', String icon = '')

    创建菜单

  • void setTitle(String text)

    设置菜单标题

  • void setIcon(String icon)

    设置菜单图标

  • void addItem(item = null)

    添加子菜单、菜单项或分割线(默认为分割线)

  • void exec(x = null, y = null)

    显示菜单(默认为鼠标位置)

DAE.MenuItem

菜单项类

Introdution

用于创建菜单项。

Properties

  • String text

    菜单项文字

  • boolean checkable

    菜单项是否可选

  • boolean checked

    菜单项是否选中

  • boolean enabled

    菜单项可用状态

  • boolean visible

    菜单项是否可见

Methods

  • 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()

    触发鼠标选中事件

Events

  • hover

    鼠标经过事件

  • trigger

    菜单项选中事件

DAE.TrayIcon

系统托盘图标类

Introdution

用于创建系统托盘图标。

Properties

  • String toolTip

    工具提示

  • boolean enabled

    可用状态

  • boolean visible

    是否可见

Methods

  • 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()

    隐藏

Events

  • activate(int reason)

    托盘图标激活事件
    reason {1: Unknown, 2: Context, 3: DoubleClick, 4: Trigger, 5: MiddleClick}

  • messageclick()

    托盘消息点击事件

DAE.File

文件读写类

Introdution

用于读写文件。

Methods

  • 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()

    关闭文件

DAE.Downloader

文件下载类

Introdution

用于创建文件下载进程。

Methods

  • Downloader(String url, String filename = null, boolean resume = false)

    创建文件下载进程(resume:是否断点续传)

  • String getFilename()

    获取文件路径

  • void start()

    开始下载任务

  • void stop()

    停止下载任务

  • void cancel()

    取消下载任务

Events

  • start()

    开始事件

  • progress(int loaded, int total)

    进度变化事件

  • finish(int total)

    完成事件

  • error(int errno, str message)

    错误事件

DAE.Process

子进程类

Introdution

用以创建子进程并实现进程间通信。

Methods

  • 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()

    获取环境变量

Events

  • start()

    启动事件

  • error(int errno, str message)

    错误事件

  • statechange(int state, str message)

    状态变化事件

  • stdout(str message)

    标准输出事件

  • stderr(str message)

    标准错误事件

  • finish(int exitCode, int exitStatus, str message)

    完成事件

DAE.SocketServer

套接字服务端类

Introdution

用以创建套接字服务端。

Methods

  • SocketServer(String encoding = 'utf-8', int timeout = null)

    创建套接字服务端

  • boolean listen(port)

    监听端口

  • void close()

    停止监听

Events

  • open()

    启动事件

  • connect(DAE.SocketConn conn)

    连接事件

  • message(DAE.SocketConn conn, String message)

    消息接收事件

  • disconnect(DAE.SocketConn conn)

    连接断开事件

  • close()

    服务端关闭事件

  • error(int, String message)

    错误事件

DAE.SocketConn

套接字连接类

Introdution

SocketConn实例由SocketServer接收到连接后产生,无法主动实例化。

Methods

  • int send(message)

    发送数据

  • void close()

    关闭连接

Events

  • message(String messge)

    消息接收事件

  • close()

    连接关闭事件

  • error(int errno, String messge)

    错误事件

DAE.SocketClient

套接字客户端类

Introdution

HTML5中使用的是WebSocket协议,该类用以创建普通Socket客户端。

Methods

  • SocketClient(String encoding = 'utf-8')

    创建套接字客户端

  • boolean connect(String host, int port)

    连接Socket服务端

  • int send(String message)

    发送数据

  • void close()

    关闭连接

Events

  • open()

    连接事件

  • message(String message)

    消息接收事件

  • close()

    关闭事件

  • error(int errno, String message)

    错误事件