标题:vfp WebView2 Demo (更新 2023.02.11)
取消只看楼主
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
结帖率:100%
已结贴  问题点数:20 回复次数:5 
vfp WebView2 Demo (更新 2023.02.11)
基本内容请参阅: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


打包下载:
vfp_WebView2_Demo.2023.02.11.rar (128.62 KB)



搜索更多相关主题的帖子: web JS 打开 页面 通信 
2023-02-11 15:17
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
以下是引用iswith在2023-2-11 15:34:24的发言:

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

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


2023-02-11 16:14
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
以下是引用iswith在2023-2-11 15:34:24的发言:

版主大人试试win7可以吗?

没用过win7,现在最低也要win10了吧。
可以参考官方信息,试试安装较低版本的 Edge 和 Edge WebView2 Runtime


2023-02-11 16:17
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
以下是引用igaoyuan在2023-2-11 16:55:03的发言:


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

不要去折腾VFP那套桌面UI了,现在流行玩JS库的东西。
VFP要玩JS库的东西首先就要VFP能与WEB通信,WebView2或能预见将来就是这意思。
2023-02-11 17:24
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
以下是引用igaoyuan在2023-2-11 16:55:03的发言:

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

存储或转换unicode数据VFP没问题,主要是输入输出能支持unicode数据。
2023-02-11 17:27
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
以下是引用laxjyj在2023-2-11 18:08:39的发言:

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

没做cookie部份,一般浏览无相干,要看某Cookie可以用DevTools。

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



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

2023-02-11 18:20



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-511259-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.487736 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved