WebPreferences for WebView2
Part of the functionality we got is new preferences:
AreDefaultContextMenusEnabled
Used to prevent default context menus from being shown to user in WebView.
The default value is true, but FileMaker may overwrite this.
AreDefaultScriptDialogsEnabled
If set to false, WebView2 does not render the default JavaScript dialog box (Specifically those displayed by the JavaScript alert, confirm, prompt functions and beforeunload event). Instead, if an event handler is set using add_ScriptDialogOpening, WebView sends an event that contains all of the information for the dialog and allow the host app to show a custom UI. The default value is true.
AreDevToolsEnabled
Controls whether the user is able to use the context menu or keyboard shortcuts to open the DevTools window.
The default value is true.
AreHostObjectsAllowed
The AreHostObjectsAllowed property is used to control whether host objects are accessible from the page in WebView.
The default value is true.
IsBuiltInErrorPageEnabled
The IsBuiltInErrorPageEnabled property is used to disable built in error page for navigation failure and render process failure.
When disabled, a blank page is displayed when the related error happens. The default value is true.
IsScriptEnabled
Controls if running JavaScript is enabled in all future navigations in the WebView.
This only affects scripts in the document. Scripts injected with ExecuteScript runs even if script is disabled. The default value is true.
IsStatusBarEnabled
Controls whether the status bar is displayed.
The status bar is usually displayed in the lower left of the WebView and shows things such as the URI of a link when the user hovers over it and other information. The default value is true. The status bar UI can be altered by web content and should not be considered secure.
IsWebMessageEnabled
If set to true, communication from the host to the top-level HTML document of the WebView is allowed using PostWebMessageAsJson, PostWebMessageAsString, and message event of window.chrome.webview. For more information, navigate to PostWebMessageAsJson. Communication from the top-level HTML document of the WebView to the host is allowed using the postMessage function of window.chrome.webview and add_WebMessageReceived method. For more information, navigate to add_WebMessageReceived. If set to false, then communication is disallowed. PostWebMessageAsJson and PostWebMessageAsString fails with E_ACCESSDENIED and window.chrome.webview.postMessage fails by throwing an instance of an Error object. The default value is true.
IsZoomControlEnabled
Used to prevent the user from impacting the zoom of the WebView.
When disabled, the user is not able to zoom using Ctrl++, Ctrl+-, or Ctrl+mouse wheel, but the zoom is set using ZoomFactor API. The default value is true.
User Agent Name
The WebView2 control allows you to change the user agent name and we implemented this via WebView.SetCustomUserAgent function .
Setting preferences
Once you have the new plugin installed with FileMaker 19.4, you can get the preferences with our WebView.GetPreferences function and put in new values with the WebView.SetPreferences function. This allows you a few configuration things within your script. Best is to define the control with "about:blank" URL to have FileMaker initialize the WebViewer early. Then setup configuration options and load the website you need.