diff options
Diffstat (limited to 'Xamarin.Forms.Core/WebView.cs')
-rw-r--r-- | Xamarin.Forms.Core/WebView.cs | 47 |
1 files changed, 33 insertions, 14 deletions
diff --git a/Xamarin.Forms.Core/WebView.cs b/Xamarin.Forms.Core/WebView.cs index b366bb4b..bba84306 100644 --- a/Xamarin.Forms.Core/WebView.cs +++ b/Xamarin.Forms.Core/WebView.cs @@ -5,7 +5,7 @@ using Xamarin.Forms.Platform; namespace Xamarin.Forms { [RenderWith(typeof(_WebViewRenderer))] - public class WebView : View, IElementConfiguration<WebView> + public class WebView : View, IWebViewController, IElementConfiguration<WebView> { public static readonly BindableProperty SourceProperty = BindableProperty.Create("Source", typeof(WebViewSource), typeof(WebView), default(WebViewSource), propertyChanging: (bindable, oldvalue, newvalue) => @@ -39,16 +39,24 @@ namespace Xamarin.Forms _platformConfigurationRegistry = new Lazy<PlatformConfigurationRegistry<WebView>>(() => new PlatformConfigurationRegistry<WebView>(this)); } + bool IWebViewController.CanGoBack { + get { return CanGoBack; } + set { SetValue(CanGoBackPropertyKey, value); } + } + public bool CanGoBack { get { return (bool)GetValue(CanGoBackProperty); } - internal set { SetValue(CanGoBackPropertyKey, value); } + } + + bool IWebViewController.CanGoForward { + get { return CanGoForward; } + set { SetValue(CanGoForwardPropertyKey, value); } } public bool CanGoForward { get { return (bool)GetValue(CanGoForwardProperty); } - internal set { SetValue(CanGoForwardPropertyKey, value); } } [TypeConverter(typeof(WebViewSourceTypeConverter))] @@ -110,24 +118,35 @@ namespace Xamarin.Forms OnPropertyChanged(SourceProperty.PropertyName); } - internal event EventHandler<EvalRequested> EvalRequested; + event EventHandler<EvalRequested> IWebViewController.EvalRequested { + add { EvalRequested += value; } + remove { EvalRequested -= value; } + } + + event EventHandler<EvalRequested> EvalRequested; - internal event EventHandler GoBackRequested; + event EventHandler IWebViewController.GoBackRequested { + add { GoBackRequested += value; } + remove { GoBackRequested -= value; } + } + + event EventHandler GoBackRequested; + + event EventHandler IWebViewController.GoForwardRequested { + add { GoForwardRequested += value; } + remove { GoForwardRequested -= value; } + } - internal event EventHandler GoForwardRequested; + event EventHandler GoForwardRequested; - internal void SendNavigated(WebNavigatedEventArgs args) + void IWebViewController.SendNavigated(WebNavigatedEventArgs args) { - EventHandler<WebNavigatedEventArgs> handler = Navigated; - if (handler != null) - handler(this, args); + Navigated?.Invoke(this, args); } - internal void SendNavigating(WebNavigatingEventArgs args) + void IWebViewController.SendNavigating(WebNavigatingEventArgs args) { - EventHandler<WebNavigatingEventArgs> handler = Navigating; - if (handler != null) - handler(this, args); + Navigating?.Invoke(this, args); } public IPlatformElementConfiguration<T, WebView> On<T>() where T : IConfigPlatform |