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

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

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を編集

#![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側とのやりとり、バイナリにリソースを含めてビルドする。あたりをやってゆきたいと思います。

bannerAds