summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Platform.WP8/WebViewRenderer.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Xamarin.Forms.Platform.WP8/WebViewRenderer.cs')
-rw-r--r--Xamarin.Forms.Platform.WP8/WebViewRenderer.cs26
1 files changed, 15 insertions, 11 deletions
diff --git a/Xamarin.Forms.Platform.WP8/WebViewRenderer.cs b/Xamarin.Forms.Platform.WP8/WebViewRenderer.cs
index d120cff8..33f73397 100644
--- a/Xamarin.Forms.Platform.WP8/WebViewRenderer.cs
+++ b/Xamarin.Forms.Platform.WP8/WebViewRenderer.cs
@@ -14,6 +14,8 @@ namespace Xamarin.Forms.Platform.WinPhone
WebNavigationEvent _eventState;
bool _updating;
+ IWebViewController ElementController => Element;
+
public async void LoadHtml(string html, string baseUrl)
{
string fileName = string.Format("formslocal_{0}.html", DateTime.Now.Ticks);
@@ -43,17 +45,19 @@ namespace Xamarin.Forms.Platform.WinPhone
if (e.OldElement != null)
{
- e.OldElement.EvalRequested -= OnEvalRequested;
- e.OldElement.GoBackRequested -= OnGoBackRequested;
- e.OldElement.GoForwardRequested -= OnGoForwardRequested;
+ var oldElementController = e.OldElement as IWebViewController;
+ oldElementController.EvalRequested -= OnEvalRequested;
+ oldElementController.GoBackRequested -= OnGoBackRequested;
+ oldElementController.GoForwardRequested -= OnGoForwardRequested;
Control.DataContext = null;
}
if (e.NewElement != null)
{
- e.NewElement.EvalRequested += OnEvalRequested;
- e.NewElement.GoBackRequested += OnGoBackRequested;
- e.NewElement.GoForwardRequested += OnGoForwardRequested;
+ var newElementController = e.NewElement as IWebViewController;
+ newElementController.EvalRequested += OnEvalRequested;
+ newElementController.GoBackRequested += OnGoBackRequested;
+ newElementController.GoForwardRequested += OnGoForwardRequested;
Control.DataContext = e.NewElement;
}
@@ -110,7 +114,7 @@ namespace Xamarin.Forms.Platform.WinPhone
async Task SaveToIsoStore(string fileName, string html)
{
IIsolatedStorageFile store = Device.PlatformServices.GetUserStoreForApplication();
- using (Stream file = await store.OpenFileAsync(fileName, FileMode.CreateNew, FileAccess.Write).ConfigureAwait(false))
+ using (Stream file = await store.OpenFileAsync(fileName, Internals.FileMode.CreateNew, Internals.FileAccess.Write).ConfigureAwait(false))
{
byte[] bytes = Encoding.UTF8.GetBytes(html);
await file.WriteAsync(bytes, 0, bytes.Length).ConfigureAwait(false);
@@ -123,7 +127,7 @@ namespace Xamarin.Forms.Platform.WinPhone
((IElementController)Element).SetValueFromRenderer(WebView.SourceProperty, source);
_updating = false;
- Element.SendNavigated(new WebNavigatedEventArgs(evnt, source, source.Url, result));
+ ElementController.SendNavigated(new WebNavigatedEventArgs(evnt, source, source.Url, result));
UpdateCanGoBackForward();
_eventState = WebNavigationEvent.NewPage;
@@ -132,8 +136,8 @@ namespace Xamarin.Forms.Platform.WinPhone
// Nasty hack because we cant bind this because OneWayToSource isn't a thing in WP8, yay
void UpdateCanGoBackForward()
{
- Element.CanGoBack = Control.CanGoBack;
- Element.CanGoForward = Control.CanGoForward;
+ ElementController.CanGoBack = Control.CanGoBack;
+ ElementController.CanGoForward = Control.CanGoForward;
}
void WebBrowserOnNavigated(object sender, System.Windows.Navigation.NavigationEventArgs navigationEventArgs)
@@ -149,7 +153,7 @@ namespace Xamarin.Forms.Platform.WinPhone
string url = navigatingEventArgs.Uri.IsAbsoluteUri ? navigatingEventArgs.Uri.AbsoluteUri : navigatingEventArgs.Uri.OriginalString;
var args = new WebNavigatingEventArgs(_eventState, new UrlWebViewSource { Url = url }, url);
- Element.SendNavigating(args);
+ ElementController.SendNavigating(args);
navigatingEventArgs.Cancel = args.Cancel;