インターネット上にある断片化された情報を切り取って、リブログする。 主にソフトウェア、Ubuntu関連、CPUなど気になったニュース、また、日々の面白い出来事やニュースもリブログします。
2019年10月4日金曜日
【UWP】UWPアプリーWebView間でデータの受け渡しする方法
いよいよ.Net core3.0が正式リリースされました。
その中で一番気になる技術はやはりクロスプラットフォーム化に進んでいるというところです。
今までクロスプラットフォーム化でネックになっているのがGUI画面とハード依存周り。
Gnome、KDE、Win、Mac、・・・様々なGUIが異なる実装をしているから画面回りを1つにまとめられない。。
Windows/Mac/Linux・・・と足回りも異なるOSだからUSBドライバ1つとっても実装を分けないといけない。。
考え出すと切りがないのが現状だったりします。
そこを打破すべくMSが推し進めているのが.Net coreプラットフォーム。
こいつを使えば足回りは1つで統一だぜヒャッハー!ってなるんだけど、
画面回りだけは、
XAMLの場合はXamarinで統一?
HTML/JS/CSSの場合はElectron、Blazorで統一?
まだ安定してませんね。
でもXAML to HTML などのコンバーターがいずれ出てくるでしょうが
今回は後者のHTML/JS/CSSを使った場合についてです。
このケースはXAMLでWebViewを張り付けて用意したWebページを表示して
データ操作をしたりしなかったりするんですが、
WebView↔C# の間でデータをやり取りを行う必要があるわけです。
最近のWebフレームワークなAngularやReactなどはWebサーバと通信するんですが
アプリと通信します。
そのインターフェイスに必要になる技術がこちら。
★C#→Javascriptのコードを呼び出す場合
var data = await web.InvokeScriptAsync("eval", new string[] { "testfunc();" });
★Javascript→C#へ通知する場合
window.external.notify("foo bar");
※C#側:WebviewのScriptNotifyイベントに通知されます。
この2つです。
使うときの注意点は、
受け渡し可能なデータ型は「文字列」のみであること。
早くBlazorのクライアントサイドが正式リリースされないかなー
【参考URL】
https://blogs.msdn.microsoft.com/japan_platform_sdkwindows_sdk_support_team_blog/2013/11/27/webview-10/
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿