
LabVIEWからブラウザにアクセスするには?
…という課題に直面したことはありますか?ほとんどの人はないと思いますが、私はあります。当時はInternet Explorer(IE)を使っていたような時期で、確かActiveXコントロールでIEにアクセスして対応したと思います。ところが、この2026年現代、IEは前時代の遺物であり、IEを表立って使う人はいないと思います。会社のシステムがIEを前提にしているためにEgdeをIEモードで動かして場当たり的に延命しているかもしれませんが。
LabVIEWでも2026 Q1からIEベースのテクノロジーに頼らなくてもウェブブラウザーを表示できるようになりました。まあ、WebView2というのを使いこなせるならそれ以前から対応できましたが。今回はLabVIEWの標準機能でウェブブラウザーを表示する機能について紹介します。
Web Browser Control
LabVIEW 2026 Q1からWeb Browser Controlという表示器が実装されました。

関数パレットのLayout → Web Browser Contorolに該当の表示器があります。上ではModernのところを選んでいますが、Fuse Design Systemにも同じ表示器があります。Silver、System、Classicには見当たりませんでした。これを使って、簡単なVIを作りました。

これはURL制御器で指定したURLのウェブページを表示するVIです。Web Browser Controlは文字列なんですね。これを実行するとこんな感じになります。

指定したURLのウェブページが表示されました。LabVIEWでこれが簡単にできるのはうれしいです。

…日本語で検索すると左上に出てくるパターンなんですね。しかも、決定しても検索欄に表示されないです。これはこのサイトに限らず、GoogleやBingのような検索サイトでも同じです。英数字ならちゃんと入力できます。それと、LabVIEWのフロントパネルに文字列制御器を置いて、日本語のテキストをコピーしてからWeb Browser Controlの検索欄に貼りつけることはできます。…めんどくさいですね。
JavaScriptとその他のメソッド
Web Browser ControlではJavaScriptを実行することができるみたいです。しかし、私はJavaScriptにはくわしくないので、JavaScriptを含むhtmlをCopilotさんに作ってもらいました。
htmlのスクリプト部分
<script>
document.getElementById("sendBtn").onclick = function() {
const text = document.getElementById("textInput").value;
if (text.trim() === "") return;
// LabVIEW に送信
window.chrome.webview.postMessage(text);
const chat = document.getElementById("chat");
const div = document.createElement("div");
div.className = "msg";
div.textContent = text;
chat.appendChild(div);
document.getElementById("textInput").value = "";
};
function addMessageFromLabVIEW(text) {
const chat = document.getElementById("chat");
const div = document.createElement("div");
div.className = "msg ai";
div.textContent = text;
chat.appendChild(div);
// スクロール追従
window.scrollTo(0, document.body.scrollHeight);
}
</script>

ここではフロントパネルのButtonを押すと、Web Browser ControlのExecute JavaScriptメソッドで”function addMessageFromLabVIEW(text)”を実行するようにしてます。このスクリプトを実行すると、htmlのチャット風の会話が進みます。このスクリプトではUTF-8で入力してもうまくいかなかったので、UTF-8をバイト配列に変換してからシステム文字列にして入力しています。JavaScriptにくわしいといろいろできそうですね。
ほかには次のメソッドがあります。
- Navigate Backward
- Navigate Forward
- Reload Page
- Stop Loading Page
ウェブブラウザでよくある「戻る」や「再読み込み」などですね。
イベント
Web Browser Control表示器には、通常の制御器にあるようなイベントに加えて、見慣れないイベントがありました。

Load Finishedはウェブページの読み取りが終わったときに発生するイベントだと思いますが、URL Navigationとは何でしょうか?試してみました。

どうやら、Web Browser Controlの中で別のページを参照したときに発生するイベントです。URL 2表示器がこのイベントが発生したときにそのときのURLを表示する表示器ですが、Web Browser Control内でウェブページを変えるととこの表示器に変更後のURLが表示されました。このイベントは?のあるもの(フィルターイベント)なので、移動したページに不都合があればイベントを無効にすることができます。
感想
LabVIEWでウェブブラウザーを扱う需要がどのくらいあるか分かりませんが、全くないわけではありません。私も何件か経験したことがあります。今は簡単にLabVIEW内でウェブページにアクセスできるし、IEと運命を共にする必要がなさそうなのがいいですね。日本語の入力は残念なところがありしたが、まあいいでしょう。
欲しい機能
- Callbackを検出したときにイベントストラクチャで検出する機能。これがあるとブラウザーからLabVIEWの情報送信ができます。JavaScriptでできるのかな?
これをやるには、今の時点ではWebView2をがんばるしかないのかな?
WebView2 Toolkit for LabVIEW – Download – VIPM by JKI
私はJavaScriptをがんばれないので、このツールキットを利用します。このツールキットでは2026ではCallbackで「CoreWebView2WebMessageReceivedEventArgs」が発生したときにユーザーイベントを発生してイベント処理ができます。コードを見た限り、2025年以前はあやしいかもですが。
htmlの本文やヘッダーを取りたい場合は、手動でコピーするかHTTPクライアントのGETなどを使ってください。

