コンポーネントに.NETコントロールを追加
こんにちは。
今回、MAGICのフォームに、.NETのWebView2コントロールをはって、WEBページを表示させようとしています。
WebView2コントロールは、VisualStudioでは、「NuGetパッケージマネージャー」を使ってインストールをして、使用できるようになりました。
MagicでWebView2コントロールを使用できるようにするには、どのようにやればよいのか教えていただけますでしょうか。
開発環境:Magic xpa 3.2c PT4
OS:Windows10
-
基本的な.net連携はオンラインマニュアルの.NETチュートリアル Magic xpaが参考になるかと思います。
と、ちょっとやってみたんですが、こちらではうまくいきませんでした。
手順的には
・コンポーネントの一覧に乗ってこなかったのでDLL探して直接指定してコンポーネント追加
・.net型の変数のオブジェクトタイプをそれっぽいのを指定する
・URIをセットする
・項目一覧からフォームに張り付けるフォームに張り付けるまではできるんですけど、何も表示されてません。
Microsoft.Web.WebView2.WinFormsのWebView2を使ってみてたんですが
オブジェクトタイプが間違っているのか他の原因があるのか
.netも素人なので何が原因かわかりませんでしたので、詳しい方ぜひフォロー入れていただければ。
古い方のbrowserコントロールならこれでいけてたんですが・・
開発環境:Magic Xpa 4.8 Xpa 2.3
OS:Windows11 -
vg様、返信ありとうございます!
しかも操作までやってみていただき、本当にありがとうございます。
やっていただいた手順と同じ手順で私もやってみました。
確かにWebBrowserでは表示されるのですが、WebView2の方は、何も表示されません。
実行すると、フォームの色と同化しているのか、コントロール自体が画面に表示されているのかもわかりません。
何か情報をお持ちの方がいらっしゃれば、引き続きよろしくお願い致します。
-
解決しました!
「WebView2Loader.dll」(32bit用)を、コンポーネントに追加したdllと同じフォルダにコピーしたら、表示されるようになりました。
-
kopanda様
質問に質問を返してしまって申し訳ありませんが解決されたようなのでぜひ手順をお聞きしたいです。
私も以前からWebView2を使用してブラウザを表示させようと試みていましたが挫折しておりました。
①NuGet CLIを使用してパッケージをダウンロード
②XpaコンポーネントにWebView2.Core、WebView2.WinForm、WebView2.Wpfのdllを読み込み
③.Net型の変数を作成してオブジェクトタイプにMicrosoft.Web.WebView2.WinForms.WebView2を選択
④フォームに.Netコントロールを貼り付けて作成した変数を.Netオブジェクトに指定
ここまでが正解かもわかりませんが、URIの指定などここから先が手詰まり状態です。
よろしければご教授下さい。 -
いちばんいいのは、Magicの「ブラウザコントロール」がChromiumベースになってくれることですね。
「ブラウザコントロール2」とかができて、対応されるといいですね。
-
dai様 こんにちは。
②XpaコンポーネントにWebView2.Core、WebView2.WinForm、WebView2.Wpfのdllを読み込み
ここで読み込んだdllが格納されているフォルダに
「WebView2Loader.dll」(32bit用)
これをコピーしてみてください。(このdllは、Magicのコンポーネントの追加は不要です。)
他の手順は、dai様が書かれた手順で大丈夫だと思います。
あとは、
DNSet([作成したWebView2の変数].Source, DotNet.System.Uri('https://www.yahoo.co.jp/') )
これでURIの指定をして、表示できました。
実はまだ環境により、表示されたり、表示されなかったりしています。
私の開発環境は、Windows10なのですが、WindowsUPDATEはしないようにしており、ちょっと古いままになっていました。
この状態だと、表示されなかったのですが、意を決してバージョン「20H2」へ上げたところ、表示されるようになりました。
.NETFrameworkも4.8に上がったので、何で表示されるようになったのか、まだ手探り中です。。。
tanda様 こんにちは。
Magicのブラウザコントロールが使えれば使いたかったのですが、今回対応している環境が「XPA3.2」のため、使えませんでした;;
-
そういえば、ブラウザコントロールはxpa 3.2ではRIAだけの対応でしたね。
-
kopandaさん、できました~~~( ;∀;)
System.Uriが出ないと思ったらコンポーネントにSystemも読み込む必要ありましたね。
ここで読み込んだdllが格納されているフォルダに「WebView2Loader.dll」(32bit用)をコピー。これを導き出されたのが凄いです。海外サイトを見ながら試行錯誤してましたがフォーラムで質問するのが一番ですね。ありがとうございましたm(_ _)mtandaさん
ですです。会社でxpa4.8開発版を今年購入したのでブラウザコントロールで一発だったのですが、どうしてもwebview2で表示させたくて頑張ってました。 -
daiさん、表示できてよかったです~!
私と同じ問題で困っている方のお役に立てて、よかったです。
最初に表示できた時の達成感がたまりませんね(^-^)
サインインしてコメントを残してください。
コメント
9件のコメント