注册 登录
编程论坛 VFP论坛

vfp WebView2 Demo (更新 2023.02.11)

吹水佬 发布于 2023-02-11 15:17, 2808 次点击
基本内容请参阅:https://bbs.bccn.net/thread-511234-1-1.html

更新主要是增加导航功能和与web页面通信。

一、导航,打开页面事件和地址的收藏和当前历史,便捷浏览。

  1、打开页面事件:

     1) OnNavigationCompleted ... 页面加载完成或加载出错停止事件
     2) OnNewWindowRequested .... 新窗口事件
        (1) 收到要打开的页面地址 url
        (2) 可返回指令控制新窗口,设置handled:0开新窗口打开、1在当前页面窗口打开、2不打开

二、通信,与web页面通信:

  1、注入JS代码在web页面顶层运行。
     测试:
     jsCode = "document.body.innerHTML='运行JS代码'"
     WebView_ExecuteScript(STRCONV(jsCode+0h00,5))

  2、通过OnWebMessageReceived事件,响应由web页面JS运行 window.chrome.webview.postMessage()函数发送的内容。
     测试方式:
     1) 模拟web页面运行JS代码:window.chrome.webview.postMessage()
        jsCode = "window.chrome.webview.postMessage('web与主机通信')"
        WebView_ExecuteScript(STRCONV(jsCode+0h00,5))

     2) 用“开发者工具”(Devtools)的控制台在页面输入JS代码。
        (1) 打开Devtools,右点击页面空白区域,在弹出菜单中选择“检查”。
只有本站会员才能查看附件,请 登录

        (2) 选择Devtools的“控制台”
            输入JS代码:window.chrome.webview.postMessage('web与主机通信')
只有本站会员才能查看附件,请 登录

            VFP就会收到如下信息
只有本站会员才能查看附件,请 登录

     3) 在HTML文件中用JS代码 window.chrome.webview.postMessage("通信内容")发送给VFP


打包下载:
只有本站会员才能查看附件,请 登录



13 回复
#2
asonglinux2023-02-11 15:24
多谢大佬!!!!!
#3
iswith2023-02-11 15:34
很强大了!有些函数如果可以的话,尽量都加上来!你可以搞一个通道用不着每个函数做一次封装!版主大人试试win7可以吗?
#4
吹水佬2023-02-11 16:14
以下是引用iswith在2023-2-11 15:34:24的发言:

很强大了!有些函数如果可以的话,尽量都加上来!你可以搞一个通道用不着每个函数做一次封装!版主大人试试win7可以吗?

这个与VFP通常用到的COM不一样,全部开放的只有接口,未见到有类对象。
要封装成一个类,给个类对象VFP用就体贴点。但这样封装代码要复杂点,执行起来没那么直接、快捷。
简单使用就没什么必要搞那么大阵仗,WebView2有好几百个功能模块,用到的抽几个出来就好了。
简单浏览还可以,或者当专用浏览器。
VFP使用他主要是与WEB通信功能,用他来做VFP的UI也可以,这样VFP的Unicode就没问题了。


#5
吹水佬2023-02-11 16:17
以下是引用iswith在2023-2-11 15:34:24的发言:

版主大人试试win7可以吗?

没用过win7,现在最低也要win10了吧。
可以参考官方信息,试试安装较低版本的 Edge 和 Edge WebView2 Runtime
只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录

#6
igaoyuan2023-02-11 16:55
以下是引用吹水佬在2023-2-11 16:14:43的发言:
VFP使用他主要是与WEB通信功能,用他来做VFP的UI也可以,这样VFP的Unicode就没问题了。

吹版厉害!这就是VFP版谷歌内核的浏览器啊!能把edit控件或是备注字段内容当网页解码应用就更丰富了!unicode就更不是问题了!
#7
吹水佬2023-02-11 17:24
以下是引用igaoyuan在2023-2-11 16:55:03的发言:


吹版厉害!这就是VFP版谷歌内核的浏览器啊!能把edit控件或是备注字段内容当网页解码应用就更丰富了!unicode就更不是问题了!

不要去折腾VFP那套桌面UI了,现在流行玩JS库的东西。
VFP要玩JS库的东西首先就要VFP能与WEB通信,WebView2或能预见将来就是这意思。
#8
吹水佬2023-02-11 17:27
以下是引用igaoyuan在2023-2-11 16:55:03的发言:

备注字段内容当网页解码应用就更丰富了!unicode就更不是问题了!

存储或转换unicode数据VFP没问题,主要是输入输出能支持unicode数据。
#9
laxjyj2023-02-11 18:08
越来越好了,现在能获取到网页的cookies了吗?
#10
吹水佬2023-02-11 18:20
以下是引用laxjyj在2023-2-11 18:08:39的发言:

越来越好了,现在能获取到网页的cookies了吗?

没做cookie部份,一般浏览无相干,要看某Cookie可以用DevTools。
只有本站会员才能查看附件,请 登录

WebView2有几个Cookie相关的接口:
ICoreWebView2Cookie
ICoreWebView2CookieList
ICoreWebView2CookieManager



[此贴子已经被作者于2023-2-11 18:25编辑过]

#11
laxjyj2023-02-11 18:26
做爬虫时,要用到cookies,普通用户不会手工获取cookies的
#12
schtg2023-02-11 18:30
谢谢!
#13
nbwww2023-02-11 18:47
谢谢!
#14
laibinhua2025-01-06 13:41
为什么报这个错
只有本站会员才能查看附件,请 登录
1