前言
aardio构建界面有四种方式
- winform
- web.form
- web.kit/web.blink
- htmlayout
其中有三个是能加载网页的
- web.form
- web.kit
- web.blink
web.blink(miniblink)
使用新版chromium内核,并且精简了体积,兼容WKE( WebKit )组件的接口。
aardio中提供了基于WKE( WebKit )的web.kit
扩展库,也提供了基于miniblink的web.blink扩展库。
这两个扩展库基本的用法是一样的( 因为接口基本一样 )。
但是这两个库都是精简过的,都不支持视频的加载。
只考虑加载视频的话可以考虑用Flash组件
要是要实现WebRTC等的话就不要使用这个技术了,推荐使用Electron。
web.form
是直接调用系统的IE,所以不存在精简的问题。
几种方式对比
web.form
1 | import win.ui; |
web.blink
1 | import win.ui; |
相应的库也会大一点
web.kit
1 | import win.ui; |
这个就不支持调试工具
AARDIO和JS互调
判断是否安装Flash
三个方式页面和代码之间的互相调用也是通用的
1 | wb.waitDoc(); |
注意要调用页面的方法,要等待页面加载完毕
1 | wb.waitDoc(); |
获取Title
方式1
1 | wb.waitDoc(); |
方式2
1 | wb.waitDoc(); |
方式3
有这么一种情况 页面在加载后,并没有Title,Title是后来才更改的,这样我们通过上面的方式是获取不到的,所以这里使用定时任务获取。
1 | wb.external = { |
修改原事件
1 | mb.external = { |
文件下载
有的前端是这样写的文件下载
1 | var fileurl = "https://www.flash.cn/cdm/latest/flashplayerax_install_cn.exe"; |
也就是说文件的下载是在新标签中打开的
这种情况浏览器会自动打开新标签 弹出下载框后自动关闭标签
我们该怎么实现呢
我们要在弹出的窗口中添加如下代码
aardio
1 | wb.NavigateError=function(pDisp,url,target,statusCode,cancel){ |
但是我们关闭窗口如果window.open(fileurl, "_blank");
不做异常捕获,会弹出一个JS报错,所以一定要做异常捕获。