Deploying app with Edge Webview2

I just released a new version of my big app, now including a form with the FNC Maps component, and got many disoriented questions from users about the installing of Edge Webview2. It is unfortunate that an extra dll has to be installed on the client (and Linux users running the app in a virtual machine do not even have Edge). I have several questions about this:

  1. The Webview2 documentation contains general instructions for programmatic installation of the dll during app startup, with registry look-up etc. Is there a Delphi code for this? What is the recommended procedure to make the installation invisible to the user?
  2. Is Webview2 part of Windows 11, so that this problem will go away by itself?
  3. What about MacOS - does FNC Maps work there without extra installs?
  4. The FNC Map module in my app is not critical, so I would prefer that no warning message appears when the app starts ("Could not initialize Edge Chromium"). Can this warning be disabled?

Thanks!

  1. First of all, it is unfortunate that Microsoft with Edge Chromium has chosen for a requirement of 2 DLLs (32 bit and 64 bit). We also think that this is an additional unnecessary requirement. Microsoft has also announced long term updates will come via Windows updates, but it's unclear if the DLL requirement will be removed. For now, installing the runtime is required (Webview2 - Microsoft Edge Developer) alongside the DLLs. To check if Edge is available, you can include the unit FMX.TMSFNCWebBrowser.Win and check the EdgeLoaded flag, before programmatically creating an instance of the map.
  2. According to the documentation and news feeds, Microsoft has integrated the runtime in Windows 11, which will be available as is and will then only require you to deploy the DLLs.
  3. macOS does not require any additional deployments.
  4. The warning can be disabled if you programmatically create an instance of the map, and you disable warnings with the EdgeSilentErrors flag after intregrating the FMX.TMSFNCWebBrowser.Win unit in your application before you create the instance.

Thank you very much Pieter, your answer was really helpful!

1 Like

This topic was automatically closed 60 minutes after the last reply. New replies are no longer allowed.