易语言资源网 - 做最全的易语言资源下载社区
精易论坛2021【双雄合璧&火源大赛】正式开启 精易论坛授权登录

精易Web浏览器支持库(miniblink内核)-正式版发布 1.6.1125   [复制链接]

    2018-09-06 17:06:00
    第三方支持库
    易语言资源网
    37226 次浏览
    来源链接

重写支持库说明:

本次更新完全使用C语言重写,相比易语言,稳定性提升速度提升C语言原生调用,带来原汁原味的快感。

【C语言支持库的好处】

        原生调用,方法、函数、类型等即得即用,无需转换xx类型及读写内存。
        指针、内存、回调统统搞定
        cdcel与stdcall直接调用,无需自己实现转换,稳定性+100%
        使用易语言官方提供的、有保障的头文件,错误率<0.1%
        直接编译生成动态库fne,静态库lib,无需转换,安全稳定
        超过数千行的源代码,完整重构
        对原支持库的逻辑和结构进行优化

总结起来三个字: 稳     快     好

--------------------------------------------------------------------

miniblink内核dll更新迭代次数:

20次以上(距离上次易语言正式版支持库发布)

累计BUG修复约:110+项

累计功能性改进约:170+项

再次感谢miniblink作者的更新维护。

【性能提升】

        启动速度提升:30%以上,xx经过打开到加载完毕时间统计获得。

        操作响应速度提升明显 在不特别复杂的网页逻辑下,响应速度提升明显。

        动画速度与显示效果提升,使效果更加平滑。 具体可以参考组合框、颜色选择器等组件。

------------------分割线----------------

【更新日志】

【正式版】2020年11月25日 版本号: 1.6.1125 更新说明:

        修复:

                *新窗口无法弹出的问题

                *ajax失效问题

                *修复新窗口无法挂接事件的问题

                *获取所有Cookie() 会崩溃的问题

                *修复新窗口创建失败的问题

        新增:

                *新增一个事件, #浏览器事件_绘画事件, 浏览器发生重画时触发, 使用 挂接事件() 进行挂接

        删除:

                *弃用支持库里所有对cookie进行二次封装的命令, 所有cookie相关的命令都是原封调用node.dll

                        设置cookie请调用 设置cookie_CURL(), 该命令原封调用node.dll的wkeSetCookie接口

                        支持库所有cookie相关的命令都是原封调用node.dll, 不会做任何修改


【正式版】2020年11月24日 更新说明:

        修复:

                *优化程序稳定性

                *修复几处已知的内存泄漏问题

                *修复 特殊功能.取post数据() 可能会崩溃的问题

                *修复WKE_填表 已知问题, 类内的方法基本都重写了

                *修复部分网页打开会崩溃问题

                *修复WKE_填表.post() url数据类型问题

                *获取HTTP头字段信息(), 参数key类型改为文本型

                *获取响应HTTP头字段信息(), 参数key类型改为文本型

                *调用DevTool(), 参数3不在内部进行编码, 传递的文本必须先转换成utf8在传递进去

                *优化启动速度

                *修复ajax.post 数据过长崩溃问题

                *修复取框架文本错误问题, 取网页源码支持获取指定框架了

        新增:

                事件:

                        *打开文件对话框, 全局事件, 只有第一个精易web浏览器组件收到此消息

                        *保存文件对话框, 全局事件, 只有第一个精易web浏览器组件收到此消息

                        *网页图标改变

                命令:

                        *wke_消息循环, 此方法会屏蔽易语言自带的消息循环, 使得精易web浏览器组件能使用tab键切换焦点

                        *wke_取消循环, 退出 wke_消息循环

                        *精易Web浏览器1.取wke窗口句柄, 取出浏览器实际窗口句柄

                        *特殊功能.置调试信息

                方法:

                        *模拟硬件设备环境(), 设置mb模拟的硬件设备环境。主要用在伪装手机设备场景

                        *弹出窗口操作 新增加一个方法, "挂接事件", 并增加26个常量给 挂接事件() 使用

                        *弹出窗口操作.创建(), 手动创建浏览框, 如果不使用易语言的窗口作为父窗口, 这个手动创建的浏览框支持tab键切换

                        *精易web浏览器.获取全部cookie(), 通过访问器visitor访问所有cookie

                        *精易web浏览器.清除cookie()

                        *WKE_填表.赋值() 把另一个 WKE_填表 的类型赋值给当前变量

                        *WKE_填表.清空() 清除当前变量里边的数据

                        *WKE_填表.获取响应头()

                        *WKE_填表.post()

                        *WKE_填表.取编辑框游标位置()

                        *WKE_填表.获取HTTP头字段信息()

                        *WKE_填表.获取响应HTTP头字段信息()

                        *JavaScript.取参数类型()

                        *JavaScript.是否为XX()  一系列判断值对象是否为某个类型

【正式版】2019年12月31日 更新说明:

        内核升级:

                使用最新版: miniblink49内核,版本:2019.12.07

        修复:

                *执行js返回空问题,这个影响了很多的方法,这个一修复,之前依靠js的方法都可以使用

                *设置代理后无法取消的bug, IP和端口为空则取消代理

                *cookie系统优化

                *设置缓存目录() 存在的问题

                *取横向纵向滚动条返回值错误的问题

                *即将导航到新窗口 事件未触发问题

                *WKE_填表.表单_取表单元素数量() 返回值问题

                *WKE_填表.表单_置填表框架() 修改说明,索引小于1为取消选中框架

                *部分填表功能失效问题

                *UA设置失效问题

                *F5刷新无效问题

                *ajax失效问题

                *发送消息无效问题 (只处理了跟事件相关的消息)

                *元素_取横坐标/元素_取纵坐标 只取到第一个的问题

                *【测试命令,需求不大会删除该功能,谨慎使用】wke_取cpu占用(),取当前进程cpu占用率

               

        新增:

                方法:

                        *精易Web浏览器新增 允许新窗打开() 方法,为真时允许新窗口打开,为假时所有新窗口都在本窗口打开

                        *WKE_填表.表单_取表单数量()

                        *精易Web浏览器.截图()

                        *特殊功能.取post数据() 详情请看 jingyiWeb.e 源码里的 Url载入开始 事件

                        *特殊功能.异步请求()

                        *特殊功能.继续请求()

                        *精易Web浏览器.取网页文本() 取指定元素或整个html的网页文本,不包含html标记

                        *WKE_填表.元素_取子元素数量() 取某个元素的子元素数量

               

                事件:

                        新增几个针对弹出新窗口的事件

                        *新窗口即将被创建

                        *新窗口创建完毕

                        *新窗口可否关闭

                        *新窗口被销毁

                        

                常量:

                        *新增4个 #请求类型_ 开头常量,用于判断请求类型

                        *新增2个 #元素类型_ 开头常量,用于判断取到post数据的类型

                        

                数据类型:

                        *POST元素, POST元素集, 详情查看 特殊功能.取post数据()

                        *弹出窗口操作, 这个是专门操作弹出的新窗口,命令和精易Web浏览器 一样,使用前必须要附加,新窗口销毁后这个类不能在使用,详情请查看例程目录下的 新窗口打开.e

               

                属性:

                        *允许新窗口打开, 只对拖放到窗口上的组件有效, 新窗口打开的需要用代码控制, 由于易语言的特性, 只能往后增加, 顺序什么的,都不要在意这些细节

将wke.fne放入到【易语言目录\lib\】文件夹中

将wke_static.lib放入到【易语言目录\static_lib\】文件夹中

将node.dll放入到【易语言目录\】文件夹中

将node.dll放入到【易语言目录\lib】文件夹中

=====================

请注意: 该版本与旧版(原2018年7月版)可以做到直接替换,但请注意:由于支持库结构不同,窗口的通用消息无法直接使用,具体用法请看例程。

本支持库将可以直接与原支持库替换,故目前直接与原支持库使用相同名字。

请确认已经仔细阅读过【使用说明】后进行下载:

下载地址:

百度网盘链接: https://pan.baidu.com/s/17fmluy_6NNHn3YbyVAlBBw 提取码: 7dny
蓝奏云下载https://www.lanzous.com/i8eidqj

【反馈渠道】

1. 在本帖内回复。

2. 在群内直接@项目部006回复。

①群:已满

②群:已满

③群:922810630(点击即加群)

【常见问题, 请仔细查看, 您遇到的所谓bug, 很多都在这有说明, 后期会慢慢增加常见错误】

----------------------------------------------------

Q. 为什么无法设置cookie目录和缓存目录?

A. 设置目录是调用node.dll的接口, node.dll中并没有创建目录, 所以设置目录前需要先确定目录是否存在, 不存在则需要自己创建


----------------------------------------------------


Q. 为什么设置了多个cookie目录了, 运行后只设置了最后一个目录? 打开多个网页cookie还是会共用?


A. 精易web支持库封装的是开源版的miniblink, 开源版的版本是不支持多文档多cookie的, 所以无法达到一个网页一个cookie

    不管设置了几个cookie目录, node.dll都只会使用最后一个目录来作为cookie目录

    如果需要多文档多cookie的, 可以使用多进程的方式来实现(后期官方可能会出单独的例程)


----------------------------------------------------


Q. 为什么cookie无法使用?


A. 请使用"精易Web浏览器支持库"里 获取cookie 的返回值来进行设置cookie

    或者请调用 设置cookie_CURL() 来进行设置, 这个是调用node.dll的wkeSetCookie接口, 不做任何修改(1.3.1210后的版本增加)


Q. 为什么提示找不到dll命令? wke api not found


A. 请将"node.dll" 这个文件放到易语言根目录,易语言/lib 目录下,调试时会从这两个文件夹里寻找"node.dll"文件,"这两个目录必须要要node.dll"

    如果是编译的版本,请将"node.dll" 存放到你编译好的程序的目录下, 或者存放到指定目录, 然后在程序中设置路径

----------------------------------------------------


Q. 为什么我设置dll路径后还是提示无法找到命令? wke api not found


A. 如果您的node.dll不是存放在程序的目录下,那么可以使用 wke_设置dll路径("node.dll完整路径") 来设置node.dll的路径

    设置的前提是,必须在窗口载入完毕之前设置, 如果在 __启动窗口_创建完毕  这个事件下设置是无效的

    因为触发 __启动窗口_创建完毕 这个事件之前就已经调用了 node.dll的命令了,所以还没有设置的时候就已经提示错误了

正确的设置方法:

    把 "_启动窗口" 改为其他名字, 比如改成 "窗口_主窗口"

    新建一个子程序,子程序名字为 "_启动子程序",这个子程序有一个整数型的返回值

    然后在 "_启动子程序" 下第一行代码写上 wke_设置dll路径("你的node.dll完整路径")

    最后在调用 载入(窗口_主窗口,,假)

这才是正确调用 wke_设置dll路径() 的方法


----------------------------------------------------


Q. 为什么不能在多线程中调用


A. 精易web支持库封装的是开源版的miniblink, 开源版的版本是禁止跨线程调用的

    如果确实需要多线程调用组件的,可以将调用代码放入到 _标签_反馈事件中, 再通过反馈事件进行调用wke


----------------------------------------------------


Q. 为什么无法静态编译?


A. 请把wke_static.lib 文件放到易语言 static_lib 目录下在进行编译

    如果还是出错,请把其他支持库取消选择后重试

    如果通过上述解决方案还是无法静态编译,请将易语言输出的 错误信息,出错系统版本,易语言版本,易语言核心库版本等信息在帖子中回复,或者在群内@项目部006

注意: 请勿将支持库(wke.fne)或者静态库(wke_static.lib)文件名修改


----------------------------------------------------


Q. 为什么我取回的网页源码是乱码?


A. 因为考虑到网页中可能会有一些gb2312无法显示的字符,所以现在的返回文本都是以utf8的形式返回

    如果是按gb2312的形式返回,那么这些无法显示的字符会变成问号"?",且无法逆转,而utf8解决了这一个问题

    以gb2312的形式来显示utf8就会出现乱码,精易web支持库已经提供了几个常用的编码转换,大家可以调用来转换


----------------------------------------------------


Q. 为什么 Url载入结束 事件没有触发?


A. 触发 url载入结束 事件需要在 Url载入开始 下hook网络请求,而这个hook会占用比较多的zy

    为了使得程序能更稳定的运行,我们在内部把这个hook取消了

    如果需要触发Url载入结束,请在Url载入开始时,判断哪些网页需要触发Url载入结束,然后调用 特殊功能对象的 拦截网络请求(Job) 方法

    如果您想每个网页都触发 Url载入结束事件,那么在 Url载入开始事件下不判断Url地址直接调用 特殊功能.拦截网络请求(Job)

    这样每个url载入结束都会触发, 但是, 我们不建议您这么做

    详情请参考历程里的 url载入结束触发例子.e


----------------------------------------------------


Q. 为什么无法打开本地HTML文件?


A. 使用 精易Web浏览器.url = "本地HTML路径"  或者 精易Web浏览器.浏览网页("本地HTML路径") 是无法浏览的

    精易Web支持库中有提供了载入本地HTML或者内存HTMLxx

    载入本地HTML文件请调用 精易Web浏览器.载入HTML文件("本地HTML文件")

    载入内存HTMLxx请调用 精易Web浏览器..载入HTML文本("utf8 HTML文本")

----------------------------------------------------


如果你觉得本产品好用,给你的生活/工作/学习带来方便,请支持我们,购买 赞助会员 ,享有多项特权



点我下载 (已有 4023 次下载)

支持库信息


支持库名称: 精易Web浏览器1.6#1125版
支持库文件名: wke.fne
支持库类型: 静态库
支持库开发者: 精易科技
支持库 GUID: {6EC0A773-ABA1-49F4-AFD2-977EA30C0D4E}
所需链接器: VC++ 6.0
下载链接:
本地下载
精易Web浏览器1.6#1125版(静态版wke.fne)
精易Web浏览器1.3#1231版(静态版wke.fne)
精易Web浏览器1.3#710版(静态版wke.fne)
精易Web浏览器1.0#0版(静态版wke.fne)



[错误报告]   上一篇:she精美皮肤文件...     下一篇:fiddler无法抓https.fidd...