1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Rustでweb-view

Last updated at Posted at 2022-12-28

解説は多いけど結局どうするのかよくわからなかったので自分なりにまとめ。

Pythonとpywebviewでも十分便利そうではあるのですけれども、やっぱり単体バイナリにしたいよなーってところです。
RustかVか、はたまたgoかみたいなところで悩むのですけれども将来性はRustかなーとも思うのでRustとweb-viewで行ってみようと思いました。
尚RustとCargoのインストールについては端折ります。

Windows 10 SDKのインストール

Windowsでweb-viewを使う場合MSHTMLかEDGEを選べるのですが、MSHTMLってIEのことです、IEはないよなーせめてEDGEだよなーってことで、EDGEを使うにはWindows 10 SDKが必要ですよと。
Visual Studio InstallerでWindows 10 SDKをインストールします。
vsinstaller

プロジェクトの作成など

cargo new webview_test

Cargo.tomlを編集
dependenciesに追加

web-view = { version = "0.7.3", features = ["edge"] }

web-viewをadd

cargo add web-view

srcを編集

src/main.rs
#![windows_subsystem = "windows"]
use web_view::*;

fn main() {
    let html_content = "<html><body><h1>Hello!</h1></body></html>";

    web_view::builder()
        .title("hello world")
        .content(Content::Html(html_content))
        .size(320, 240)
        //.resizable(false)
        .user_data(())
        .invoke_handler(|_webview, _arg| Ok(()))
        .run()
        .unwrap()
}

コンパイルと実行

cargo build
cargo run

hello

無事に動作したようです。

ポイントはcargo addとWindows 10 SDK

Windows 10 SDKのことはweb-vew公式のドキュメントにちらっとは書いてあるのですがRustに不慣れなこともあり cargo add の件を落としていてなかなか動作させることが出来ず悩みました。
コンパイルは通るけれど実行が出来ないみたいなことになります

このままでは使い物にならないので次回以降、外部ファイルから読み込む、HTML側とのやりとり、バイナリにリソースを含めてビルドする。あたりをやってゆきたいと思います。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?