|
http://localhost作戦 の もう一つの代案としては、
「個別ブラウザ枠」や「レンダリング枠」(特に個別ブラウザ枠)向けに、
> WebView2の「SetVirtualHostNameToFolderMapping」
の機能を使うというものです。
(westernさんも以前話題に出していたと思います)
これは結構強力で、事実上「httpサーバーを立てること無く」
「特定のフォルダーをrootフォルダとみなしてhttpサーバーを一時的に立てたかの如き」
効果を得られます。
しかもサーバーが実際に立っているわけではないので秀丸外部からはアクセスできません。
(秀丸マクロのcreateHttpServerよりよっぽど安全ですw)
そのURLでアクセスできるのは、あくまでも該当の「SetVirtualHostNameToFolderMapping」の設定を行った
WebView2インスタンスだけです。
実装側。WebView2インスタンスの「CoreWebView2のSetVirtualHostNameToFolderMapping」の簡易例
```C# C++でも類似。
webView = new WebView2();
await webView.EnsureCoreWebView2Async(null);
webView.CoreWebView2.SetVirtualHostNameToFolderMapping("localhost", "C:\\あいうえお", CoreWebView2HostResourceAccessKind.Allow);
webView.Source = new Uri("https://localhost/index.html");
```
(上の例は「https://localhost/***」とアクセスされると該当のWebview2インスタンスについては
「httpsプロトコル」で"C:\あいうえお\***"にアクセスする)
## browserpanecommandやrenderpanecommand実装例
browserpanecommand({
virtualhost: "localhost",
foldermap:"C:\\あいうえお", // virtualhost が有効な場合にのみ有効。
url: "http://localhost/index.html", // C:\\あいうえお\\index.html を httpプロトコルで表示する。
show: 1
}
browserpanecommand({
virtualhost: "hidemaruo.net", // このようなサイトは無いが、あるかないかは無関係
foldermap:"C:\\marumaru", //
url: "http://hidemaruo.net/index.html", C:\\marumaru\\index.html にアクセス
show: 1
}
|
|