Q. 1.7 有好几个dll, 我应该怎么选择呢?
A. miniblink_4975_x32.dll是miniblink的主dll,wkexe_4975_x32.exe是测试程序。此dll使用75版本v8,且带了nodejs
miniblink_4949_x32是不带nodejs版本的miniblink,并且使用48版本v8。由于v8版本比较老,很多js语法不兼容,不推荐使用
miniblink_4957_x32.dll是带nodejs的、使用57版本v8的miniblink
请根据需要自行选择, 在没有指定dll路径的情况下, 支持库会按以下顺序检测加载dll
1. miniblink_4975_x32.dll
2. miniblink_4957_x32.dll
3. miniblink_4949_x32.dll
4. node.dll
----------------------------------------------------
Q. 1.7 压缩包里那么多文件, 哪些文件对我有用?
A. 1.7 压缩包文件结构如下
lib -> wke.fne, 【必选】这个是支持库主文件
static_lib -> wke_static.lib, 【必选】这个是支持库静态库文件, 静态编译时使用
例程
front_end, 【可选】这个文件夹是DevTools工具使用的文件, 就是浏览器F12的那个窗口, 调用方法请参考例程源码
plugins, 【可选】这个文件夹是mb使用的插件, 用来支持flash等功能, 调用 "调试功能.NPAPI插件开启关闭()" 开启关闭
miniblink_49xx_x32.dll, 【必选, 至少一个】这些dll就是mb的主dll, 区别请参考上一条说明
wkexe_49xx_x32.exe, 【测试用】这些是mb官方的测试程序, 分别调用对应文件名的dll
*.e 文件, 【测试用】这些是例程源码
----------------------------------------------------
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" 这个文件放到易语言根目录下,调试时会从这个文件夹里寻找"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文本")