易语言WebUI教程 - 第三期 —— miniblink绑定、交互及传参

 准备工作

1. 易语言、VSCode

2. miniblink模块、精易模块、Node.dll

3. JQuery-1.9.1.js

如果你没有可以去看上一期教程下载

注:

本期demo例程请到文章末尾获取~~

miniblink绑定

1. 导入miniblink、精易模块:

 

2. 先在易语言中新建一个无边框的窗口,然后再在顶部的位置放一个透明标签组件(主要是用来移动窗口) 

然后给透明标签的鼠标左键按下事件写上代码:

发送信息(161,2,0) 

3. 在窗口创建完毕事件下写上以下代码:

.版本 2

.子程序 _窗口1_创建完毕

WKE初始化 ()
mb.绑定 (窗口1.取窗口句柄 (), 真)
mb.载入文件 (取运行目录 () + “\html\index.html”)

 

 

4. 最后编写好index.html文件,也就是界面即可。

 

5. 运行后可以就可以看这个html的界面被加载了出来

 

 JS绑定

经过以上步骤我们虽然已经把index.html这个页面加载出来了,但是当我们点击里面的按钮是没有任何效果的,这时候我们就需要绑定一个JS函数,让它能与易语言的事件进行交互。

首先,在易语言窗口创建完毕的事件下加入这行:

JS绑定函数 (“submitData”, “&登录按钮_被点击”)

再新建个名为 登录按钮_被点击 的子程序,里面写上登录按钮点击后你希望执行的易语言代码,我这里主要写个信息框。

index.html部分主要在button标签中添加一个onclick属性,也就是鼠标点击的事件属性,属性内容填submitData()  也就是在易语言绑定的那个js函数。

οnclick="submitData()" 通俗来说就是 点击了按钮》执行submitData()函数。

 

 最后在易语言运行,点击按钮后可以看到,成功弹出了提示框。

 

传递参数(传参)

经过上面步骤我们虽然可以通过绑定JS函数进行事件的交互,但是还无法传递参数,也就说明我们无法获取文本框<input>中的内容,这时候就涉及到一个问题参数传递的问题。

这个问题也不难解决,miniblink传参还是相对比较简单的,废话不多说,先上教程:

先在易语言 登录按钮_被点击 改成以下参数和变量、代码:

.版本 2

.子程序 登录按钮_被点击
.参数 es, 整数型
.局部变量 data, 文本型


data = JS取参数_文本 (es, 0)

信息框 (data, 0, , )

 

html部分主要把 οnclick="submitData()" 改成 οnclick="submitData('测试测试')"

回到易语言并运行,点击按钮后可以看到,html中submitData的参数测试测试已经可以传递过来了。

 

根据这个原理,只要我们在html中写个js获取账号密码框中的内容,并通过submitData函数提交就可以将账号密码的内容传递到易语言中了。

为了让大家看起来更规范,我这用了JQuery,并把它的事件统一写在了下面

 

最后总结

如果弄WebUI的话,大部分界面以及窗口事件都是要通过JS来处理的,只类似保存、读取本地账号密码这些涉及后端数据处理的时候才会用到易语言。

所以前端扎实的易友们可以来玩一下这个WebUI,毕竟html的框架、插件比较完善,有时候可能会比用自绘弄起来要更简单轻松、更容易实现。

DEMO例程

demo.zip - 蓝奏云

miniblink是什么? Miniblink是一个追求极致小巧的浏览器内核项目,全世界第三大流行的浏览器内核控件。 其基于chromium最新版内核,去除了chromium所有多余的部件,只保留最基本的排版引擎blink。 Miniblink保持了10M左右的极简大小,是所有同类产品最小的体积,同时支持windows xp、npapi。 为什么要做miniblink? 市面上作为嵌入的组件的可用的浏览器内核,不外乎这几个:webkit、cef、nwjs、electron。 cef:优点是由于集成的chromium内核,所以对H5支持的很全,同时因为使用的人也多,各种教程、示例,资源很多。但缺点很明显,太大了。最新的cef已经夸张到了100多M,还要带一堆的文件。同时新的cef已经不支持xp了(chromium对应版本是M49)。而且由于是多进程架构,对资源的消耗也很夸张。如果只是想做个小软件,一坨文件需要带上、超大的安装包,显然不能忍受。 nwjs,或者最近大火的electron:和cef内核类似,都是chromium内核。缺点和cef一模一样。优点是由于可以使用nodejs的资源,同时又自带了各种api的绑定,所以可以用的周边资源非常丰富;而基于js的开发方案,使得前端很容易上手。所以最近N多项目都是基于nwjs或electron来实现。例如vscode,atom等等。 原版webkit:现在官网还在更新windows port,但显然漫不在心,而且最新的webkit也很大了,超过20几M。最关键的是,周边资源很少,几乎没人再基于webkit来做开发。同时由于windows版的saferi已经停止开发了,所以用webkit就用不了他的dev tools了。这是个大遗憾。 WKE:这是个很老的webkit内核的裁剪版了。小是小,但bug太多了。 那么关键点来了,使用miniblink有啥好处呢?? 首先,miniblink对大小要求非常严格。原版chromium、blink里对排版渲染没啥大用的如音视频全都被砍了,只专注于网页的排版和渲染。甚至为了裁剪大小,我不惜使用vc6的crt来跑mininblink(见我上篇文章)。这个也算前无古人后无来者了。 其次,miniblink紧跟最新chromium,这意味着chromium相关的资源都可以利用。在未来的规划里,我是打算把electron的接口也加上的,这样可以无缝替换electron。使用miniblink的话,开发调试时用原版electron,发布的时候再替换掉那些dll,直接可以无缝切换,非常方便。 miniblink如何使用? Miniblink导出了electron、WKE的接口,可以直接无缝替换现有的electron、WKE项目。 早期miniblink还导出了CEF接口,不过现在已被废弃。 miniblink有个小demo,从demo里可以看到,brackct这个基于cef的开源编辑器,已经顺利由miniblink跑起来了。现在electron的接口已做好,vscode跑起来了。 更详细的使用文档见本页其他文章。 miniblink如何裁剪到这么小? 这个比较复杂了。主要就是把blink从chromium抽离了出来,同时补上了cc层(硬件渲染层)。现在的blink,已经不是当年的那个webkit了,渲染部分全走cc层,复杂无比。我这大半年都在重写他那个蛋疼又复杂的cc层。 和webkit比,miniblink架构有什么优势 现在的webkit版本,已经比miniblink落后太多了。blink一直在加入各种极富创造力和想象力的功能、组件。例如,blink早就加入多线程解析html token、blink gc回收器、多线程录制回放渲染机制。这些能让blink的解析渲染速度极大提升。下一次,我会先开源出blink gc组件,这东西很有意思,在c++里硬是搞出了一个垃圾回收机制,能让你像写java一样写c++。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NUILLI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值