作成者: BlinkGTK Project
バージョン: 1.2.0-build2
導入をご検討中の方から、実際に使い始めた方まで、よくいただくご質問をまとめました。
ここに無いことは 困ったときは
をご覧いただくか、
contact@blinkgtk.org
までお気軽にお尋ねください。
Chromium のレンダリングエンジン (Blink) を、GTK4
のウィジェットとして
使えるようにしたライブラリです。
BlinkWebView を窓に入れれば、そこに Web
ページが表示されます。GTK の
ボタンやラベルと同じ感覚で扱えます。
GtkWidget *view = blink_web_view_new();
gtk_window_set_child(GTK_WINDOW(window), view);
blink_web_view_load_uri(BLINK_WEB_VIEW(view), "https://example.com/");Web
の技術で画面を作りたい場面すべてです。実際に検討・利用されている領域には、
電子書籍リーダー、車載の情報画面、産業機器の操作パネル、デジタルサイネージ、
店頭端末などがあります。
詳しくは BlinkGTK は何に使えるか をご覧ください。
いちばん大きな違いはエンジンです。BlinkGTK は
Chromium と同じ Blink を
使うので、Chrome で見えるとおりに表示されます。
| BlinkGTK | WebKitGTK | |
|---|---|---|
| エンジン | Blink (Chromium) | WebKit |
| 表示の基準 | Chrome と同じ | Safari に近い |
| DevTools | Chrome DevTools が使える | Web Inspector |
ウィジェットとしての扱い方はよく似ていますが、関数名は異なります。
移行される場合は WebKitGTK
からの移行
に対応表があります。
「どちらが優れているか」という話ではありません。Chrome
を基準に確認しながら
作りたい、Chrome DevTools を使いたい、という場合に BlinkGTK
が向いています。
はい。公開して間もないプロジェクトです。
そのぶん、ご報告いただいた不具合には早く手が入ります。実際、利用者の方から
いただいた指摘がそのまま次のビルドに反映されています。お気付きの点は
どんな小さなことでもお知らせください。
BSD 3-Clause です。商用利用も可能です。
同梱している Chromium
由来のコンポーネントには、それぞれのライセンスが
適用されます。配布物に THIRD_PARTY_NOTICES
を同梱していますので、
再配布される際はそちらもあわせてお使いください。
C から使うのが基本です。加えて GObject Introspection
に対応しているので、
Python・Rust・JavaScript・Vala などからも呼べます。
import gi
gi.require_version('BlinkGTK', '0.1')
from gi.repository import BlinkGTK
view = BlinkGTK.WebView.new()
view.load_uri('https://example.com/')チュートリアルは Python と
Rust
をご用意しています。
いいえ。Wayland 専用です。
現在の主要なデスクトップ環境 (GNOME・KDE Plasma・Sway など) は既定で
Wayland
なので、通常はそのまま動きます。X11 セッションでお使いの場合は、Wayland
での
ログインに切り替えてください。
RPM (Fedora 系) と DEB (Debian / Ubuntu 系)、それに tarball
を配布しています。
tarball
は展開したその場で動くので、どのディストリビューションでもお試し
いただけます。
インストール に手順があります。
必須ではありません。CPU だけで描画する経路があり、既定でも動きます。
GPU が使える環境では、BLINKGTK_GPU_MODE=egl で GPU
描画に切り替えられます。
環境によってどちらが速いかは変わるので、実機でお試しいただくのが確実です。
Chromium がプロセスを分けて動く都合上、WebView 1 つあたり数百
MBを
見込んでください。組み込み機器でお使いの場合は、この点を設計に織り込んで
いただく必要があります。
最初のアプリをビルドして動かす
が入口です。
実際に動くところまで通しで書いてあります。
その次は、やりたいことに応じて
逆引き索引
から引くのが早いです。
はい。ただしメインループにひとつ注意点があります。
g_application_run() は Chromium
側のループを回さないため、これだけでは
ページが表示されません。窓を出したあとに
blink_gtk_run_main_loop() を
回してください。
書き方は アプリに組み込む
にあります。
これは実際に利用者の方から「記載どおりに書いたのに動かない」とご指摘を
いただいて整備した箇所です。
使えます。むしろ力を入れている領域です。
縦書き・ルビ・圏点・縦中横・禁則処理に対応しています。JLReq
(日本語組版処理の
要件) に沿った組版を目指しており、Chromium
本体への貢献も行っています。
期待どおりに組まれない箇所を見つけられた場合は、ぜひお知らせください。
再現用の HTML をいただければ、そのまま検証に使わせていただきます。
独自の URL スキームを登録できます。myapp://
のような形でアプリ内のデータを
配信でき、file:// を使うより安全で扱いやすい方法です。
詳しくは アプリ連携 API
の
「カスタム URL スキーム」をご覧ください。
できます。双方向です。
こちらも アプリ連携 API
に
まとまっています。
できます。電子書籍リーダーや店頭端末のように、コンテンツを保護したい用途を
想定した設定があります。
設定 API をご覧ください。
Chromium
の安定版が上がるのに合わせて追従しています。加えて、不具合の修正は
その都度ビルドを出しています。
更新の履歴は 改版履歴
に、Chromium の版が上がって
何ができるようになったかは
Chromium 新機能史
にまとめています。
動作は変わりませんが、Web
ブラウザは更新をおすすめします。Chromium の
更新には脆弱性の修正が含まれるためです。インターネット上のページを表示する
用途では、なるべく新しい版をお使いください。
閉じたネットワークでお使いの場合は、この限りではありません。
できます。必要なファイルを同梱して、単体で動く形にまとめられます。
手順は ポータブルアプリとして配布する
に
あります。
はい。BSD 3-Clause なので、商用製品への組み込みに制限はありません。
導入のご相談や、特定の環境向けの調整については contact@blinkgtk.org まで
お問い合わせください。
「こんなことを聞いてよいのだろうか」と迷われる必要はありません。
お気軽にお尋ねください。