Upgrade to Pro — share decks privately, control downloads, hide ads and more …

HybridWebViewでJSベースのView開発 / Development JavaSc...

Yusuke Yamada
September 28, 2024

HybridWebViewでJSベースのView開発 / Development JavaScript based View with HybridWebView

Yusuke Yamada

September 28, 2024
Tweet

More Decks by Yusuke Yamada

Other Decks in Technology

Transcript

  1. 自己紹介 経歴 • Xamarin歴 2014- • Microsoft MVP 2018- ちゅうこ

    (山田 裕介) GitHub: yamachu X(Twitter): y_chu5 趣味 • ポケカ、ゲーム • GitHubのExploreのだら見
  2. HybridWebView • WebView 内のコンテンツの JavaScript コードと、 ホストの C# コード間の通信を可能にするコントロール ◦

    例えば、WebView 上の React アプリケーションと C# 間で通信が可能に • アプリの UI の一部として利用が可能 ◦ HybridWebView 自体がコントロールであるため、 .NET MAUIの他のコントロールと共存が可能 ◦ 複雑な UI の実装を JavaScript アプリケーションに委譲し、 ロジック部分を C# のような使い方も可能 • .NET 9 Preview 7 以降で利用可能
  3. HybridWebView を試す 1. .NET MAUI プロジェクトの作成 2. プロジェクトに Web アプリケーションのコンテンツを追加

    3. HybridWebView コントロールの配置 4. HybridWebView API を使用するコードの追加
  4. HybridWebView を試す 1. .NET MAUI プロジェクトの作成 2. プロジェクトに Web アプリケーションのコンテンツを追加

    3. HybridWebView コントロールの配置 4. HybridWebView API を使用するコードの追加
  5. HybridWebView を試す 1. .NET MAUI プロジェクトの作成 2. プロジェクトに Web アプリケーションのコンテンツを追加

    3. HybridWebView コントロールの配置 4. HybridWebView API を使用するコードの追加
  6. HybridWebView を試す 1. .NET MAUI プロジェクトの作成 2. プロジェクトに Web アプリケーションのコンテンツを追加

    3. HybridWebView コントロールの配置 4. HybridWebView API を使用するコードの追加
  7. HybridWebView を試す 1. .NET MAUI プロジェクトの作成 2. プロジェクトに Web アプリケーションのコンテンツを追加

    3. HybridWebView コントロールの配置 4. HybridWebView API を使用するコードの追加
  8. HybridWebView API を使用するコードの追加 MainPage.xaml.cs の中身を以下のように変更 .NET MAUI の Button コントロールの

    Click Handler JavaScript アプリケーションに対し、文字列を含むメッセージを送信
  9. macOS Sequoia ユーザ向けの注意点 .NET 9 RC 1 時点では、HTML コンテンツのホストにアドレスの 0.0.0.0

    を使用 0.0.0.0 へのアクセスに制限が加わったため以下の Workaround が必要 (追記) https://github.com/dotnet/maui/pull/24884 0.0.0.1 になるそうです https://github.com/dotnet/maui/issues/23390#issuecomment-2202295194 MauiProgram.cs に以下を追記
  10. まとめ • HybridWebView は JavaScript と C# の通信手段を与える • アプリの一部として利用できるため、

    .NET MAUI のコントロールとの共存は容易 • アプリの View に JavaScript アプリケーションを採用するの も現実的に