Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,15 @@
<Button
Text="Enable Zoom Controls"
Clicked="OnEnableZoomControlsClicked"/>
</VerticalStackLayout>
<Label
Text="JavaScriptEnabled"
Style="{StaticResource Headline}"/>
<Button
Text="JavaScriptEnabled"
Clicked="OnJavaScriptEnabledClicked"/>
<Label
x:Name="JavaScriptEnabledResult" />
</VerticalStackLayout>
</VerticalStackLayout>
</ScrollView>
</views:BasePage.Content>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,22 @@ void OnEnableZoomControlsClicked(object sender, EventArgs e)
MauiWebView.On<Microsoft.Maui.Controls.PlatformConfiguration.Android>().EnableZoomControls(true);
}

void OnJavaScriptEnabledClicked(object sender, EventArgs e)
{
bool isJavaScriptEnabled = MauiWebView.On<Microsoft.Maui.Controls.PlatformConfiguration.Android>().IsJavaScriptEnabled();

if (isJavaScriptEnabled)
{
MauiWebView.On<Microsoft.Maui.Controls.PlatformConfiguration.Android>().JavaScriptEnabled(false);
JavaScriptEnabledResult.Text = "JavaScript is disabled";
}
else
{
MauiWebView.On<Microsoft.Maui.Controls.PlatformConfiguration.Android>().JavaScriptEnabled(true);
JavaScriptEnabledResult.Text = "JavaScript is enabled";
}
}

void OnLoadHtml5VideoClicked(object sender, EventArgs e)
{
MauiWebView.Source = new UrlWebViewSource { Url = "video.html" };
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,5 +23,10 @@ public static void UpdateDisplayZoomControls(this AWebView platformView, WebView
{
platformView.Settings.DisplayZoomControls = webView.OnThisPlatform().ZoomControlsDisplayed();
}

public static void UpdateJavaScriptEnabled(this AWebView platformView, WebView webView)
{
platformView.Settings.JavaScriptEnabled = webView.OnThisPlatform().IsJavaScriptEnabled();
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -112,5 +112,62 @@ public static IPlatformElementConfiguration<Android, FormsElement> SetDisplayZoo
SetDisplayZoomControls(config.Element, value);
return config;
}

/// <summary>
/// Bindable property for controlling whether JavaScript is enabled in a Element.
/// </summary>
public static readonly BindableProperty JavaScriptEnabledProperty = BindableProperty.Create("JavaScriptEnabled", typeof(bool), typeof(FormsElement), true);

/// <summary>
/// Gets the value of the JavaScriptEnabled property for the specified WebView.
/// </summary>
/// <param name="element">The WebView from which to read the property value.</param>
/// <returns>A boolean value indicating whether JavaScript is enabled.</returns>
public static bool GetJavaScriptEnabled(FormsElement element)
{
return (bool)element.GetValue(JavaScriptEnabledProperty);
}

/// <summary>
/// Sets the value of the JavaScriptEnabled property for the specified WebView.
/// </summary>
/// <param name="element">The WebView on which to set the property value.</param>
/// <param name="value">The boolean value indicating whether JavaScript should be enabled.</param>
public static void SetJavaScriptEnabled(FormsElement element, bool value)
{
element.SetValue(JavaScriptEnabledProperty, value);
}

/// <summary>
/// Sets whether JavaScript is enabled for the specified Android platform configuration.
/// </summary>
/// <param name="config">The platform configuration to which this method applies.</param>
/// <param name="value">The boolean value indicating whether JavaScript should be enabled.</param>
public static void JavaScriptEnabled(this IPlatformElementConfiguration<Android, FormsElement> config, bool value)
{
SetJavaScriptEnabled(config.Element, value);
}

/// <summary>
/// Determines whether JavaScript is enabled for the specified Android platform configuration.
/// </summary>
/// <param name="config">The platform configuration to check.</param>
/// <returns>A boolean value indicating whether JavaScript is enabled.</returns>
public static bool IsJavaScriptEnabled(this IPlatformElementConfiguration<Android, FormsElement> config)
{
return GetJavaScriptEnabled(config.Element);
}

/// <summary>
/// Sets whether JavaScript is enabled for the specified Android platform configuration and returns the configuration.
/// </summary>
/// <param name="config">The platform configuration to which this method applies.</param>
/// <param name="value">The boolean value indicating whether JavaScript should be enabled.</param>
/// <returns>The platform configuration to support fluent API.</returns>
public static IPlatformElementConfiguration<Android, FormsElement> SetJavaScriptEnabled(this IPlatformElementConfiguration<Android, FormsElement> config, bool value)
{
SetJavaScriptEnabled(config.Element, value);
return config;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,13 @@ static Microsoft.Maui.Controls.Platform.FormattedStringExtensions.ToSpannableStr
*REMOVED*~static Microsoft.Maui.Controls.VisualElement.ControlsVisualElementMapper -> Microsoft.Maui.IPropertyMapper<Microsoft.Maui.IView, Microsoft.Maui.IViewHandler>
*REMOVED*~static Microsoft.Maui.Controls.WebView.ControlsWebViewMapper -> Microsoft.Maui.IPropertyMapper<Microsoft.Maui.IWebView, Microsoft.Maui.Handlers.WebViewHandler>
*REMOVED*~static Microsoft.Maui.Controls.Window.ControlsWindowMapper -> Microsoft.Maui.IPropertyMapper<Microsoft.Maui.IWindow, Microsoft.Maui.Handlers.WindowHandler>
~static Microsoft.Maui.Controls.Platform.WebViewExtensions.UpdateJavaScriptEnabled(this Android.Webkit.WebView platformView, Microsoft.Maui.Controls.WebView webView) -> void
~static Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific.WebView.GetJavaScriptEnabled(Microsoft.Maui.Controls.WebView element) -> bool
~static Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific.WebView.IsJavaScriptEnabled(this Microsoft.Maui.Controls.IPlatformElementConfiguration<Microsoft.Maui.Controls.PlatformConfiguration.Android, Microsoft.Maui.Controls.WebView> config) -> bool
~static Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific.WebView.JavaScriptEnabled(this Microsoft.Maui.Controls.IPlatformElementConfiguration<Microsoft.Maui.Controls.PlatformConfiguration.Android, Microsoft.Maui.Controls.WebView> config, bool value) -> void
~static Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific.WebView.SetJavaScriptEnabled(Microsoft.Maui.Controls.WebView element, bool value) -> void
~static Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific.WebView.SetJavaScriptEnabled(this Microsoft.Maui.Controls.IPlatformElementConfiguration<Microsoft.Maui.Controls.PlatformConfiguration.Android, Microsoft.Maui.Controls.WebView> config, bool value) -> Microsoft.Maui.Controls.IPlatformElementConfiguration<Microsoft.Maui.Controls.PlatformConfiguration.Android, Microsoft.Maui.Controls.WebView>
~static Microsoft.Maui.Controls.WebView.MapJavaScriptEnabled(Microsoft.Maui.Handlers.IWebViewHandler handler, Microsoft.Maui.Controls.WebView webView) -> void
~static readonly Microsoft.Maui.Controls.BaseShellItem.FlyoutItemIsVisibleProperty -> Microsoft.Maui.Controls.BindableProperty
const Microsoft.Maui.Controls.TitleBar.ContentHiddenState = "ContentCollapsed" -> string!
const Microsoft.Maui.Controls.TitleBar.ContentVisibleState = "ContentVisible" -> string!
Expand Down Expand Up @@ -210,6 +217,7 @@ static readonly Microsoft.Maui.Controls.TitleBar.TitleProperty -> Microsoft.Maui
static readonly Microsoft.Maui.Controls.TitleBar.TrailingContentProperty -> Microsoft.Maui.Controls.BindableProperty!
static readonly Microsoft.Maui.Controls.Window.TitleBarProperty -> Microsoft.Maui.Controls.BindableProperty!
virtual Microsoft.Maui.Controls.Application.ActivateWindow(Microsoft.Maui.Controls.Window! window) -> void
~static readonly Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific.WebView.JavaScriptEnabledProperty -> Microsoft.Maui.Controls.BindableProperty
~static readonly Microsoft.Maui.Controls.Switch.OffColorProperty -> Microsoft.Maui.Controls.BindableProperty
~Microsoft.Maui.Controls.Switch.OffColor.get -> Microsoft.Maui.Graphics.Color
~Microsoft.Maui.Controls.Switch.OffColor.set -> void
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -230,7 +230,13 @@ Microsoft.Maui.Controls.ITextElement.TextTransform.set -> void
*REMOVED*~static Microsoft.Maui.Controls.VisualElement.ControlsVisualElementMapper -> Microsoft.Maui.IPropertyMapper<Microsoft.Maui.IView, Microsoft.Maui.IViewHandler>
*REMOVED*~static Microsoft.Maui.Controls.WebView.ControlsWebViewMapper -> Microsoft.Maui.IPropertyMapper<Microsoft.Maui.IWebView, Microsoft.Maui.Handlers.WebViewHandler>
*REMOVED*~static Microsoft.Maui.Controls.Window.ControlsWindowMapper -> Microsoft.Maui.IPropertyMapper<Microsoft.Maui.IWindow, Microsoft.Maui.Handlers.WindowHandler>
~static Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific.WebView.GetJavaScriptEnabled(Microsoft.Maui.Controls.WebView element) -> bool
~static Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific.WebView.IsJavaScriptEnabled(this Microsoft.Maui.Controls.IPlatformElementConfiguration<Microsoft.Maui.Controls.PlatformConfiguration.Android, Microsoft.Maui.Controls.WebView> config) -> bool
~static Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific.WebView.JavaScriptEnabled(this Microsoft.Maui.Controls.IPlatformElementConfiguration<Microsoft.Maui.Controls.PlatformConfiguration.Android, Microsoft.Maui.Controls.WebView> config, bool value) -> void
~static Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific.WebView.SetJavaScriptEnabled(Microsoft.Maui.Controls.WebView element, bool value) -> void
~static Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific.WebView.SetJavaScriptEnabled(this Microsoft.Maui.Controls.IPlatformElementConfiguration<Microsoft.Maui.Controls.PlatformConfiguration.Android, Microsoft.Maui.Controls.WebView> config, bool value) -> Microsoft.Maui.Controls.IPlatformElementConfiguration<Microsoft.Maui.Controls.PlatformConfiguration.Android, Microsoft.Maui.Controls.WebView>
~static readonly Microsoft.Maui.Controls.BaseShellItem.FlyoutItemIsVisibleProperty -> Microsoft.Maui.Controls.BindableProperty
~static readonly Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific.WebView.JavaScriptEnabledProperty -> Microsoft.Maui.Controls.BindableProperty
~virtual Microsoft.Maui.Controls.Handlers.Items2.ItemsViewController2<TItemsView>.CreateDelegator() -> UIKit.UICollectionViewDelegateFlowLayout
~virtual Microsoft.Maui.Controls.Handlers.Items2.ItemsViewController2<TItemsView>.CreateItemsViewSource() -> Microsoft.Maui.Controls.Handlers.Items.IItemsViewSource
~virtual Microsoft.Maui.Controls.Handlers.Items2.ItemsViewController2<TItemsView>.DetermineCellReuseId(Foundation.NSIndexPath indexPath) -> string
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -231,7 +231,13 @@ Microsoft.Maui.Controls.ITextElement.TextTransform.set -> void
*REMOVED*~static Microsoft.Maui.Controls.VisualElement.ControlsVisualElementMapper -> Microsoft.Maui.IPropertyMapper<Microsoft.Maui.IView, Microsoft.Maui.IViewHandler>
*REMOVED*~static Microsoft.Maui.Controls.WebView.ControlsWebViewMapper -> Microsoft.Maui.IPropertyMapper<Microsoft.Maui.IWebView, Microsoft.Maui.Handlers.WebViewHandler>
*REMOVED*~static Microsoft.Maui.Controls.Window.ControlsWindowMapper -> Microsoft.Maui.IPropertyMapper<Microsoft.Maui.IWindow, Microsoft.Maui.Handlers.WindowHandler>
~static Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific.WebView.GetJavaScriptEnabled(Microsoft.Maui.Controls.WebView element) -> bool
~static Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific.WebView.IsJavaScriptEnabled(this Microsoft.Maui.Controls.IPlatformElementConfiguration<Microsoft.Maui.Controls.PlatformConfiguration.Android, Microsoft.Maui.Controls.WebView> config) -> bool
~static Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific.WebView.JavaScriptEnabled(this Microsoft.Maui.Controls.IPlatformElementConfiguration<Microsoft.Maui.Controls.PlatformConfiguration.Android, Microsoft.Maui.Controls.WebView> config, bool value) -> void
~static Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific.WebView.SetJavaScriptEnabled(Microsoft.Maui.Controls.WebView element, bool value) -> void
~static Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific.WebView.SetJavaScriptEnabled(this Microsoft.Maui.Controls.IPlatformElementConfiguration<Microsoft.Maui.Controls.PlatformConfiguration.Android, Microsoft.Maui.Controls.WebView> config, bool value) -> Microsoft.Maui.Controls.IPlatformElementConfiguration<Microsoft.Maui.Controls.PlatformConfiguration.Android, Microsoft.Maui.Controls.WebView>
~static readonly Microsoft.Maui.Controls.BaseShellItem.FlyoutItemIsVisibleProperty -> Microsoft.Maui.Controls.BindableProperty
~static readonly Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific.WebView.JavaScriptEnabledProperty -> Microsoft.Maui.Controls.BindableProperty
~virtual Microsoft.Maui.Controls.Handlers.Items2.ItemsViewController2<TItemsView>.CreateDelegator() -> UIKit.UICollectionViewDelegateFlowLayout
~virtual Microsoft.Maui.Controls.Handlers.Items2.ItemsViewController2<TItemsView>.CreateItemsViewSource() -> Microsoft.Maui.Controls.Handlers.Items.IItemsViewSource
~virtual Microsoft.Maui.Controls.Handlers.Items2.ItemsViewController2<TItemsView>.DetermineCellReuseId(Foundation.NSIndexPath indexPath) -> string
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,11 @@ static Microsoft.Maui.Controls.ViewExtensions.TranslateToAsync(this Microsoft.Ma
*REMOVED*~static Microsoft.Maui.Controls.VisualElement.ControlsVisualElementMapper -> Microsoft.Maui.IPropertyMapper<Microsoft.Maui.IView, Microsoft.Maui.IViewHandler>
*REMOVED*~static Microsoft.Maui.Controls.WebView.ControlsWebViewMapper -> Microsoft.Maui.IPropertyMapper<Microsoft.Maui.IWebView, Microsoft.Maui.Handlers.WebViewHandler>
*REMOVED*~static Microsoft.Maui.Controls.Window.ControlsWindowMapper -> Microsoft.Maui.IPropertyMapper<Microsoft.Maui.IWindow, Microsoft.Maui.Handlers.WindowHandler>
~static Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific.WebView.GetJavaScriptEnabled(Microsoft.Maui.Controls.WebView element) -> bool
~static Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific.WebView.IsJavaScriptEnabled(this Microsoft.Maui.Controls.IPlatformElementConfiguration<Microsoft.Maui.Controls.PlatformConfiguration.Android, Microsoft.Maui.Controls.WebView> config) -> bool
~static Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific.WebView.JavaScriptEnabled(this Microsoft.Maui.Controls.IPlatformElementConfiguration<Microsoft.Maui.Controls.PlatformConfiguration.Android, Microsoft.Maui.Controls.WebView> config, bool value) -> void
~static Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific.WebView.SetJavaScriptEnabled(Microsoft.Maui.Controls.WebView element, bool value) -> void
~static Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific.WebView.SetJavaScriptEnabled(this Microsoft.Maui.Controls.IPlatformElementConfiguration<Microsoft.Maui.Controls.PlatformConfiguration.Android, Microsoft.Maui.Controls.WebView> config, bool value) -> Microsoft.Maui.Controls.IPlatformElementConfiguration<Microsoft.Maui.Controls.PlatformConfiguration.Android, Microsoft.Maui.Controls.WebView>
~static readonly Microsoft.Maui.Controls.BaseShellItem.FlyoutItemIsVisibleProperty -> Microsoft.Maui.Controls.BindableProperty
const Microsoft.Maui.Controls.TitleBar.ContentHiddenState = "ContentCollapsed" -> string!
const Microsoft.Maui.Controls.TitleBar.ContentVisibleState = "ContentVisible" -> string!
Expand Down Expand Up @@ -209,6 +214,7 @@ static readonly Microsoft.Maui.Controls.TitleBar.TitleProperty -> Microsoft.Maui
static readonly Microsoft.Maui.Controls.TitleBar.TrailingContentProperty -> Microsoft.Maui.Controls.BindableProperty!
static readonly Microsoft.Maui.Controls.Window.TitleBarProperty -> Microsoft.Maui.Controls.BindableProperty!
virtual Microsoft.Maui.Controls.Application.ActivateWindow(Microsoft.Maui.Controls.Window! window) -> void
~static readonly Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific.WebView.JavaScriptEnabledProperty -> Microsoft.Maui.Controls.BindableProperty
~static readonly Microsoft.Maui.Controls.Switch.OffColorProperty -> Microsoft.Maui.Controls.BindableProperty
~Microsoft.Maui.Controls.Switch.OffColor.get -> Microsoft.Maui.Graphics.Color
~Microsoft.Maui.Controls.Switch.OffColor.set -> void
Expand Down
6 changes: 6 additions & 0 deletions src/Controls/src/Core/PublicAPI/net/PublicAPI.Unshipped.txt
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,11 @@ static Microsoft.Maui.Controls.ViewExtensions.TranslateToAsync(this Microsoft.Ma
*REMOVED*~static Microsoft.Maui.Controls.VisualElement.ControlsVisualElementMapper -> Microsoft.Maui.IPropertyMapper<Microsoft.Maui.IView, Microsoft.Maui.IViewHandler>
*REMOVED*~static Microsoft.Maui.Controls.WebView.ControlsWebViewMapper -> Microsoft.Maui.IPropertyMapper<Microsoft.Maui.IWebView, Microsoft.Maui.Handlers.WebViewHandler>
*REMOVED*~static Microsoft.Maui.Controls.Window.ControlsWindowMapper -> Microsoft.Maui.IPropertyMapper<Microsoft.Maui.IWindow, Microsoft.Maui.Handlers.WindowHandler>
~static Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific.WebView.GetJavaScriptEnabled(Microsoft.Maui.Controls.WebView element) -> bool
~static Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific.WebView.IsJavaScriptEnabled(this Microsoft.Maui.Controls.IPlatformElementConfiguration<Microsoft.Maui.Controls.PlatformConfiguration.Android, Microsoft.Maui.Controls.WebView> config) -> bool
~static Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific.WebView.JavaScriptEnabled(this Microsoft.Maui.Controls.IPlatformElementConfiguration<Microsoft.Maui.Controls.PlatformConfiguration.Android, Microsoft.Maui.Controls.WebView> config, bool value) -> void
~static Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific.WebView.SetJavaScriptEnabled(Microsoft.Maui.Controls.WebView element, bool value) -> void
~static Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific.WebView.SetJavaScriptEnabled(this Microsoft.Maui.Controls.IPlatformElementConfiguration<Microsoft.Maui.Controls.PlatformConfiguration.Android, Microsoft.Maui.Controls.WebView> config, bool value) -> Microsoft.Maui.Controls.IPlatformElementConfiguration<Microsoft.Maui.Controls.PlatformConfiguration.Android, Microsoft.Maui.Controls.WebView>
~static readonly Microsoft.Maui.Controls.BaseShellItem.FlyoutItemIsVisibleProperty -> Microsoft.Maui.Controls.BindableProperty
const Microsoft.Maui.Controls.TitleBar.ContentHiddenState = "ContentCollapsed" -> string!
const Microsoft.Maui.Controls.TitleBar.ContentVisibleState = "ContentVisible" -> string!
Expand Down Expand Up @@ -201,6 +206,7 @@ static readonly Microsoft.Maui.Controls.TitleBar.TitleProperty -> Microsoft.Maui
static readonly Microsoft.Maui.Controls.TitleBar.TrailingContentProperty -> Microsoft.Maui.Controls.BindableProperty!
static readonly Microsoft.Maui.Controls.Window.TitleBarProperty -> Microsoft.Maui.Controls.BindableProperty!
virtual Microsoft.Maui.Controls.Application.ActivateWindow(Microsoft.Maui.Controls.Window! window) -> void
~static readonly Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific.WebView.JavaScriptEnabledProperty -> Microsoft.Maui.Controls.BindableProperty
~static readonly Microsoft.Maui.Controls.Switch.OffColorProperty -> Microsoft.Maui.Controls.BindableProperty
~Microsoft.Maui.Controls.Switch.OffColor.get -> Microsoft.Maui.Graphics.Color
~Microsoft.Maui.Controls.Switch.OffColor.set -> void
Expand Down
Loading
Loading