注册 登录
编程论坛 VFP论坛

vfp WebView2 Demo (终:含C++、VFP全部源码)

吹水佬 发布于 2023-04-17 16:29, 3649 次点击
相关贴:
https://bbs.bccn.net/thread-511388-1-1.html
https://bbs.bccn.net/thread-511332-1-1.html
https://bbs.bccn.net/thread-511259-1-1.html
https://bbs.bccn.net/thread-511234-1-1.html

只因Demo,为方便阅读,代码力求精简。
代码主要是参考官方的示例和WebView2 Win32 C++ API,不含任何调试和容错处理过程。

https://learn.
https://learn.

开发环境:VS Community 2022、VFP9

开发环境设置可参考官方文档:
https://learn.

要在项目的“管理 NuGet 程序包”搜索“WebView2”,“更新”最新版本。

这次更新的主要内容:
1、优化处理Cookie(获取、设置和删除)
2、共享内存缓冲区(创建、释放、读、写),(参考示例:Web共享WebView2内存缓冲区)
3、运行DevToolsProtocol方法,(参考示例:输出PDF、截图)
4、打印(对话框、默认打印、输出到PDF文件),(参考示例:输出PDF)
5、基本的10个事件可以添加和移除,精简功能可提高性能。

作为嵌入VFP的web应用,扩展VFP应用环境,WebView2是选项。

WebView2内容丰富,版本更新也快,个人认知能力和精力有限,这个Demo算是到此为止。

文件包有点大,要到下载频道:https://down.bccn.net/12438.html

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


[此贴子已经被作者于2023-4-17 16:41编辑过]

42 回复
#2
cssnet2023-04-17 17:43
以下是引用吹水佬在2023-4-17 16:29:19的发言:
文件包有点大,要到下载频道:https://down.bccn.net/12438.html


衰鬼,这分享确实狠牛B!
感谢!致敬!

#3
sdta2023-04-17 18:13
收到学习了
#4
西狐8882023-04-17 19:16
非常感谢,学习
#5
schtg2023-04-17 19:38
谢谢!
#6
csyx2023-04-17 19:40
好东西要标记一下!
只是不懂微软这 WebView2 为啥非得单独安装运行包,还那么大,就不能像 webbrowser 借用 IE 一样借用已有的 Edge ?
自己的软件想要用到 WebView2 的话,这么个庞大的安装包有点吓人,唉

[此贴子已经被作者于2023-4-17 19:47编辑过]

#7
吹水佬2023-04-17 20:21
以下是引用csyx在2023-4-17 19:40:02的发言:

好东西要标记一下!
只是不懂微软这 WebView2 为啥非得单独安装运行包,还那么大,就不能像 webbrowser 借用 IE 一样借用已有的 Edge ?
自己的软件想要用到 WebView2 的话,这么个庞大的安装包有点吓人,唉

这个Demo只是封装WebView2接口的API,运行时只需多带一个100多K的WebView2Loader.dll就可以启动,其他的是调用windows系统现成的。
运行后那个用户数据文件夹放的缓存文件就不少,最少也有几十M。用户数据可以做成单用户使用,也可多用户共用。

webbrowser 借用 IE,WebView2 也是借用 Edge,WebView2只是Edge的一部分,是Edge开放的一些接口功能。



#8
吹水佬2023-04-17 20:29
以下是引用csyx在2023-4-17 19:40:02的发言:

自己的软件想要用到 WebView2 的话,这么个庞大的安装包有点吓人,唉


基本的文件很小,看看第一个Demo,就几个文件100多K就可以跑起来。

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


“庞大”可能说的是这次的Demo文件包吧,这个Demo是含C++源码开发文件,包含整个项目设置方案和开发包文件,方便使用的人直接打开项目就可以编译。

[此贴子已经被作者于2023-4-17 20:37编辑过]

#9
nbwww2023-04-17 20:45
感谢  收藏
#10
csyx2023-04-17 21:23
以下是引用吹水佬在2023-4-17 20:29:01的发言:
基本的文件很小,看看第一个Demo,就几个文件100多K就可以跑起来。
“庞大”可能说的是这次的Demo文件包吧,这个Demo是含C++源码开发文件,包含整个项目设置方案和开发包文件,方便使用的人直接打开项目就可以编译。

之前做了一个小小的试验性应用,数次在部分机器上遇到过报缺少WebView2运行时的问题,其中一台从微软下载安装过(好像100多M,庞大就是指这个)运行时包后好了,其他什么情况就没再继续跟踪
#11
吹水佬2023-04-17 22:49
以下是引用csyx在2023-4-17 21:23:02的发言:

之前做了一个小小的试验性应用,数次在部分机器上遇到过报缺少WebView2运行时的问题,其中一台从微软下载安装过(好像100多M,庞大就是指这个)运行时包后好了,其他什么情况就没再继续跟踪

这个是系统级的运行库包,不是每个使用WebView2的应用程序都要安装的。
就好像有些C运行库一样,不是windows默认就安装好的,通常应用程序需要用到时都有提示安装,就如VFP也有用到C库,某种情况下如果系统没有也会提示安装。

早时的win10没推送WebView2时也是要自己下载安装WebView2运行库,现在的win10应该在安装或更新时就会自动推送,除非不想要Edge。

#12
laowan0012023-04-18 06:54
吹版威武
#13
aqyejun2023-04-18 11:39
感谢分享!
#14
iswith2023-04-18 12:50
WebView2有地方最想不通的地方就是IE可以直接预览自家的office,到了WebView2连个office直接预览都没有开放出来。。。。感觉office 365 越做越恶心了。。。。。。
#15
seasoners2023-04-18 13:52
谢谢,非常好的分享
#16
吹水佬2023-04-18 14:04
以下是引用iswith在2023-4-18 12:50:27的发言:

WebView2有地方最想不通的地方就是IE可以直接预览自家的office,到了WebView2连个office直接预览都没有开放出来。。。。感觉office 365 越做越恶心了。。。。。。

虽然WebView2说到底不是MS自家的,但 web office 的东西对MS来说也不是新鲜的东西了。
是不是MS觉得web office目前的市场价值不如意,或另有新图谋。


#17
iswith2023-04-18 18:45
web office 解析需要公网域名 而且解析有大小限制,且Web office 解析大多数都要收费,且很多年以前这种布局就开始了!只是VFPer 在web方面涉及比较少不了解而以。。。。。
#18
恒一2023-04-19 15:29
非常感谢,学习
#19
seasoners2023-09-15 09:45
版主您好,有WebView2中,myWebViewDll.dll和WebView2Loader.dll 所有函数的资料吗?谢谢
#20
吹水佬2023-09-15 21:30
以下是引用seasoners在2023-9-15 09:45:31的发言:

版主您好,有WebView2中,myWebViewDll.dll和WebView2Loader.dll 所有函数的资料吗?谢谢

本人知道到的全在发过的WebView2相关贴中有提到。
#21
seasoners2023-09-18 10:58
以下是引用吹水佬在2023-9-15 21:30:51的发言:


本人知道到的全在发过的WebView2相关贴中有提到。

谢谢!
#22
esailor2023-10-24 11:30
学习,多谢!
#23
zhiguo9172023-10-24 14:28
非常感谢,学习
#24
tsg20052023-12-13 09:56
好东西,先收藏。
#25
sostemp2023-12-19 09:14
三人行必有我师!
#26
sash2023-12-24 13:46
请问,用WebView2做的表单,不是顶层为什么不能显示网页内容,有什么解决方法?
#27
atong2023-12-28 11:01
感谢  程序 又可以升级了
#28
nickname882024-01-02 09:07
感谢!
#29
sych2024-01-04 09:49
感谢吹版带领大家进入一片新天地!
#30
seasoners2024-05-07 15:39
如何一键获取打开网页的源代码,谢谢

#31
吹水佬2024-05-09 20:46
以下是引用seasoners在2024-5-7 15:39:53的发言:

如何一键获取打开网页的源代码,谢谢

可以运行JS码
jsCode = "document.documentElement.outerHTML"
WebView_ExecuteScript(STRCONV(jsCode+0h00,5), .t.)

#32
seasoners2024-05-10 08:01
能够查看了,但如何把它的值赋予一个变量,谢谢!十分感谢吹水佬
#33
吹水佬2024-05-10 08:05
回复 26楼 sash
可以观察一下不同模式表单中的子窗口层面,看看顶层表单有什么不同。
#34
吹水佬2024-05-10 08:09
以下是引用seasoners在2024-5-10 08:01:43的发言:

能够查看了,但如何把它的值赋予一个变量,谢谢!十分感谢吹水佬

能看到的话,再看看代码是怎样显示出来的应该就清楚数据存放在哪里。。
#35
seasoners2024-05-10 08:17
就是这个内部函数WebView_ExecuteScript显示的结果,是否就没有返回值呢?
#36
吹水佬2024-05-10 08:26
看看触发的事件代码,可以参考相关示例代码。
#37
seasoners2024-05-10 08:31
我研究了挺长时间也没有解决,所以向您请教,请在百忙中抽出时间帮我找找症结所在,尽管很急,但理解您很忙,这些指点已经很到位了,但我能力有限,所以还是恳请您帮帮忙,谢谢!
#38
吹水佬2024-05-10 20:36
回复 37楼 seasoners
在OnExecuteScript事件中处理,如下cScriptValue就是返回值。

* OnExecuteScript 调用WebView_ExecuteScript回调事件
*    lParam ... 从JavaScript返回数据地址
LPARAMETERS lParam
LOCAL cScriptValue
cScriptValue = STRCONV(SYS(2600, lParam, apiWcslenPtr(lParam)*2), 6)

#39
seasoners2024-05-11 07:28
收到,万分谢谢!
#40
seasoners2024-05-17 07:59
我用这个就是解决WX页面无法简单用DOWNLOADFILE获取源码的问题,原来行,现在不行了,所以想了一个这样的变通方式,已经可以了,有感兴趣的可以试一试。再次谢谢吹水佬的鼎力支持!!!
#41
ykxby0012024-08-24 16:27
致敬大佬
#42
SATANA2024-10-25 14:56
吹老好   为啥 WEBVIEW2浏览器部分 有时候出现白板?
#43
SATANA2024-10-26 03:22
顶一个
1