Java Swing 嵌入微软 WebView2 的运行环境设置

这篇具有很好参考价值的文章主要介绍了Java Swing 嵌入微软 WebView2 的运行环境设置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Java Swing 嵌入微软 WebView2 的运行环境设置


目标

当使用 DJNativeSwing 和 Eclipse swt 开发 Windows 桌面 Java 应用时,因为使用 Javascript 动态载入 html 片段, 导致 CORS 异常.

Access to XMLHttpRequest at ‘file:///…’ from origin ‘null’ has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, isolated-app, chrome-extension, chrome-untrusted, https, edge.

这里提供一种对用户透明的解决方案。

主机

系统:

  1. Windows 11 专业版 22H2
  2. Microsoft WebView2 已经安装

开发环境: IntelliJ IDEA 2022.3 (Ultimate Edition)

参考资料

1. DJNativeSwing

2. Eclipse swt

原理

参考文件 DJ-Native-Swing\swt-4.26RC2-win32-win32-x86_64\src\org\eclipse\swt\browser\Edge.java

// System.getProperty() keys
static final String BROWSER_DIR_PROP = "org.eclipse.swt.browser.EdgeDir";
static final String BROWSER_ARGS_PROP = "org.eclipse.swt.browser.EdgeArgs";
static final String DATA_DIR_PROP = "org.eclipse.swt.browser.EdgeDataDir";
static final String LANGUAGE_PROP = "org.eclipse.swt.browser.EdgeLanguage";
static final String VERSIONT_PROP = "org.eclipse.swt.browser.EdgeVersion";

BROWSER_ARGS_PROP 即为 ICoreWebView2EnvironmentOptions 可选参数 ‘value’,更详细的可以参考 Chromium 的启动参数,目前 MS Edge 与其保持一致。

微软的官方说明,注意参数格式

public HRESULT put_AdditionalBrowserArguments(LPCWSTR value)

Please note that calling this API twice will replace the previous value rather than appending to it. If there are multiple switches, there should be a space in between them. The one exception is if multiple features are being enabled/disabled for a single switch, in which case the features should be comma-seperated. Ex. "--disable-features=feature1,feature2 --some-other-switch --do-something"

2022-12-14 疫情正当前,值得纪念文章来源地址https://www.toymoban.com/news/detail-685024.html

到了这里,关于Java Swing 嵌入微软 WebView2 的运行环境设置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【小沐学C++】C++ MFC中嵌入web网页控件(WebBrowser、WebView2、CEF3)

    WebBrowser控件最常见的用途之一是向应用程序添加 Internet 浏览功能。使用 IWebBrowser2 接口,可以浏览到本地文件系统、网络或万维网上的任何位置。可以使用IWebBrowser2::Navigate 方法告知控件要浏览到哪个位置。第一个参数是包含位置名称的字符串。要浏览到本地文件系统或网络

    2024年02月05日
    浏览(58)
  • WPF混合开发之WebView2(二) WebView2的简单使用

    在上一篇文章中,我们介绍了WebView2的环境搭建,点此前往,在这一章节,我们将使用WebView2简单搭建一个WPF程序,在程序中加载百度搜索页面,废话不多说,直接上流程。 建立WPF工程 建立WPF工程步骤很简单,在此不再截图,直接上步骤: 打开Visual Stido 2022(博主使用的是vs

    2024年02月05日
    浏览(73)
  • [C#][]webview2简单使用

    1、本例子需要下载 Microsoft.Web.WebView2  WebView2.Runtime.X64或者​​​​​​WebView2.Runtime.X86 引用库:  webview2运行库这样放置:  代码如下: 上述代码解决了2个常见问题: (1)this.webView21.CoreWebView2的值一直是null,这是没有运行库导致 (2)内部跳转,网上说的没有一个完整,

    2024年02月11日
    浏览(42)
  • WPF中使用WebView2控件

    WebView2 全称 Microsoft Edge WebView2 控件,此控件的作用是在本机桌面应用中嵌入web技术(html,css,javascript),从名字就可以看出来WebView2使用了Edge内核渲染web内容。 通俗来说,WebView2控件是一个UI组件,允许在桌面应用中提供web能力的集成,即俗称的混合开发。 助力程序开发和

    2024年02月03日
    浏览(48)
  • WebView2 的初步集成与试用

    目录 一、环境概况 二、安装 三、集成测试  参考资料         由于以前公司自己集成了一个浏览器供客户使用,而原来的浏览器使用的是IWebBrowser2的技术,而IWebBrowser2技术支持的IE框架只能到ie11,但由于现在新的js框架横行,而且加上windows放弃了IE浏览器,而有的客户项目

    2024年02月05日
    浏览(49)
  • C# Winform 中使用 Webview2

    目前的windows/Linux下的UI方案,以Qt为主,Flutter, Electron为辅,其他的各种UI都是不堪大用。众所周知,Electron的资源占用和内容占用太大,效率不行,所以有了后续各种跨语言的Web套壳方案: walls go语言下web套壳 tarui Rust下的web套壳 除了使用CEF的Qt/C++/C#方案,Qt+WebEngine, 目前在

    2024年02月12日
    浏览(50)
  • QT5 通过 webview2 加载网页

    官方文档参考:https://learn.microsoft.com/zh-cn/microsoft-edge/webview2/get-started/win32 头文件主要为:WebView2和WixLibrary,存储在include/external 库主要为:WebView2LoaderStatic.lib和WebView2Loader.dll,存储在lib/external CMakeLists文件 base/set_env.cmake init_project.cmake base/set_compile_arg.cmake main函数 MainWindow函数

    2024年02月07日
    浏览(47)
  • NET Webview2无法打开网页解决方法

    错误情况: 用.NET 开发 使用Webview2 打开网页时,白屏,不显示网页。 系统错误日志: Code Integrity determined that a process (DeviceHarddiskVolume7Program Files (x86)MicrosoftEdgeWebViewApplication110.0.1587.63msedgewebview2.exe) attempted to load DeviceHarddiskVolume7InetPubftprootTiprayLdTermghijt64.dll that did

    2024年02月15日
    浏览(52)
  • C++ 在Win32中简单使用WebView2

    Microsoft Edge WebView2 控件允许在本机应用中嵌入 web 技术(HTML、CSS 以及 JavaScript)。 WebView2 控件使用 Microsoft Edge 作为绘制引擎,以在本机应用中显示 web 内容。 使用 WebView2 可以在本机应用的不同部分嵌入 Web 代码,或在单个 WebView2 实例中生成所有本机应用。可以去官网查看具体

    2024年02月06日
    浏览(46)
  • 四.Winform使用Webview2加载本地HTML页面并互相通信

    往期相关文章目录 专栏目录 实现刷新按钮 点击 C# winform 按钮可以调用 C# winform 代码显示到html上 点击 HTML 按钮可以调用 C# winform 代码更改html按钮字体 C# - html html-C# 确保mainView2的CoreWebView2异步初始化完成 在webview2的CoreWebView初始化之后设置属性 在coreWebview2完成时添加 WebMess

    2024年01月24日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包