aardio 拖拽外部文件到webview2 获得 本地文件路径 drag drop
aardio 默认的web.view 不支持,所以换个库
官方的issue解决方案
https://github.com/MicrosoftEdge/WebView2Feedback/issues/2313
webview2 库
https://github.com/aardiolib/webview2
这个库封装的事件很全面
安装方法
npm i @aardiolib/webview2
复制
.\node_modules\@aardiolib\
到aardio软件目录
.\lib\
项目简单示例
import win.ui;
import webview2;
/*DSG{{*/
var winform = win.form(text="webview2 Demo";right=759;bottom=469)
winform.add()
/*}}*/
..webview2.CreateCoreWebView2Environment(function(errorCode,createdEnvironment){
createdEnvironment.CreateCoreWebView2Controller(winform,function(errorCode, createdController){
winform.adjust = function(){
createdController.put_Bounds(winform.getClientRect());
}
createdController.put_Bounds(winform.getClientRect());
createdController.put_IsVisible(true);
var m_webView = createdController.get_CoreWebView2();
m_webView.Navigate("https://www.baidu.com/");
})
})
winform.show();
win.loopMessage();
添加 NewWindowRequested 事件处理程序
外部文件拖入后,默认是弹出个新框,然后就能获取到文件url了,然后再将url传递给网页的页面,或者直接执行操作,再刷新页面即可
args.get_Uri() 就是文件地址
import win.ui;
import webview2;
import console;
/*DSG{{*/
var winform = win.form(text="webview2 Demo";right=759;bottom=469)
winform.add()
/*}}*/
..webview2.CreateCoreWebView2Environment(function(errorCode,createdEnvironment){
createdEnvironment.CreateCoreWebView2Controller(winform,function(errorCode, createdController){
winform.adjust = function(){
createdController.put_Bounds(winform.getClientRect());
}
createdController.put_Bounds(winform.getClientRect());
createdController.put_IsVisible(true);
var m_webView = createdController.get_CoreWebView2();
//添加 NewWindowRequested 事件处理程序
m_webView.add_NewWindowRequested(function(args){
//console.log("NewWindowRequested",args.get_Uri());
args.put_Handled(true);
//m_webView.Navigate(args.get_Uri());
})
m_webView.Navigate("https://www.baidu.com/");
})
})
winform.show();
win.loopMessage();
库里面有一些相应的示例
最后用的这个老库
https://github.com/WDNLRuny/web.view2
sdk:64位
https://developer.microsoft.com/zh-cn/microsoft-edge/webview2/?form=MA13LH#download
web.view2 已废弃,本项目已停止维护。请使用新版本webview2
---------------------------------------------
生活的意义就是你自己知道你要做什么,明确目标。没有目标,后面都是瞎扯!
https://pengchenggang.gitee.io/navigator/
SMART原则:
目标必须是具体的(Specific)
目标必须是可以衡量的(Measurable)
目标必须是可以达到的(Attainable)
目标必须和其他目标具有相关性(Relevant)
目标必须具有明确的截止期限(Time-based)
生活的意义就是你自己知道你要做什么,明确目标。没有目标,后面都是瞎扯!
https://pengchenggang.gitee.io/navigator/
SMART原则:
目标必须是具体的(Specific)
目标必须是可以衡量的(Measurable)
目标必须是可以达到的(Attainable)
目标必须和其他目标具有相关性(Relevant)
目标必须具有明确的截止期限(Time-based)