3 个版本
0.13.4 | 2022年2月20日 |
---|---|
0.13.3 | 2022年2月20日 |
0.13.2 | 2022年2月19日 |
#1132 in GUI
2MB
2.5K SLoC
支持所有主要桌面平台(如 Windows、macOS 和 Linux)的跨平台 WebView 渲染库。
概述
Wry 连接每个平台的网络引擎,并提供易于使用且统一的接口以渲染 WebView。它还作为模块重新导出 tao 以用于事件循环和窗口创建。
用法
创建窗口并浏览网站的示例代码如下
fn main() -> wry::Result<()> {
use wry::{
application::{
event::{Event, StartCause, WindowEvent},
event_loop::{ControlFlow, EventLoop},
window::WindowBuilder,
},
webview::WebViewBuilder,
};
let event_loop = EventLoop::new();
let window = WindowBuilder::new()
.with_title("Hello World")
.build(&event_loop)?;
let _webview = WebViewBuilder::new(window)?
.with_url("https://tauri.studio")?
.build()?;
event_loop.run(move |event, _, control_flow| {
*control_flow = ControlFlow::Wait;
match event {
Event::NewEvents(StartCause::Init) => println!("Wry has started!"),
Event::WindowEvent {
event: WindowEvent::CloseRequested,
..
} => *control_flow = ControlFlow::Exit,
_ => (),
}
});
}
在 examples
目录下还有更多示例,您可以输入以下命令尝试它们
cargo run --example multi_window
有关更多信息,请参阅以下文档。
文档
平台特定说明
所有平台都使用 tao 来构建窗口,而 wry 将其作为应用程序模块重新导出。以下是每个平台使用的底层网络引擎以及可能需要安装的一些依赖项。
Linux
Tao 使用 gtk-rs 及其相关库来创建窗口,wry 也需要 WebKitGTK 用于 WebView。因此,请确保已安装以下包
Arch Linux / Manjaro
sudo pacman -S webkit2gtk libappindicator-gtk3
Debian / Ubuntu
sudo apt install libwebkit2gtk-4.0-dev libappindicator3-dev
Fedora
sudo dnf install gtk3-devel webkit2gtk3-devel libappindicator-gtk3-devel
macOS
WebKit 是 macOS 的本地库,因此一切应该正常。
如果您使用 osxcross 为 macOS 进行交叉编译并遇到类似 无法找到具有名称 WKWebViewConfiguration 的类
的运行时崩溃,则可能是 WebKit.framework
没有正确链接,要修复此问题,请设置 RUSTFLAGS
环境变量
RUSTFLAGS="-l framework=WebKit" cargo build --target=x86_64-apple-darwin --release
Windows
使用 Microsoft Edge Chromium 提供的 WebView2。因此,wry 支持 Windows 7、8 和 10。
许可证
Apache-2.0/MIT
依赖项
~5–53MB
~774K SLoC