set { SetValue(HtmlProperty, value); }
}
- internal override void Load(IWebViewRenderer renderer)
+ internal override void Load(IWebViewDelegate renderer)
{
renderer.LoadHtml(Html, BaseUrl);
}
namespace Xamarin.Forms
{
- internal interface IWebViewRenderer
+ public interface IWebViewDelegate
{
void LoadHtml(string html, string baseUrl);
void LoadUrl(string url);
--- /dev/null
+using System;
+
+namespace Xamarin.Forms.Internals
+{
+ public class EvalRequested : EventArgs
+ {
+ public string Script { get; }
+
+ public EvalRequested(string script)
+ {
+ Script = script;
+ }
+ }
+}
\ No newline at end of file
set { SetValue(UrlProperty, value); }
}
- internal override void Load(IWebViewRenderer renderer)
+ internal override void Load(IWebViewDelegate renderer)
{
renderer.LoadUrl(Url);
}
using System;
+using Xamarin.Forms.Internals;
using Xamarin.Forms.Platform;
namespace Xamarin.Forms
public void Eval(string script)
{
- EventHandler<EventArg<string>> handler = EvalRequested;
- if (handler != null)
- handler(this, new EventArg<string>(script));
+ EventHandler<EvalRequested> handler = EvalRequested;
+ handler?.Invoke(this, new EvalRequested(script));
}
public void GoBack()
OnPropertyChanged(SourceProperty.PropertyName);
}
- internal event EventHandler<EventArg<string>> EvalRequested;
+ internal event EventHandler<EvalRequested> EvalRequested;
internal event EventHandler GoBackRequested;
eh(this, EventArgs.Empty);
}
- internal abstract void Load(IWebViewRenderer renderer);
+ internal abstract void Load(IWebViewDelegate renderer);
internal event EventHandler SourceChanged;
}
<Compile Include="ElementEventArgs.cs" />
<Compile Include="ElementTemplate.cs" />
<Compile Include="EmailKeyboard.cs" />
+ <Compile Include="Internals\EvalRequested.cs" />
<Compile Include="ExportEffectAttribute.cs" />
<Compile Include="ExpressionSearch.cs" />
<Compile Include="FileAccess.cs" />
<Compile Include="IValueProvider.cs" />
<Compile Include="IViewController.cs" />
<Compile Include="IVisualElementController.cs" />
- <Compile Include="IWebViewRenderer.cs" />
+ <Compile Include="IWebViewDelegate.cs" />
<Compile Include="IXamlTypeResolver.cs" />
<Compile Include="IXmlLineInfoProvider.cs" />
<Compile Include="KeyboardFlags.cs" />
using System.ComponentModel;
using Android.Webkit;
using Android.Widget;
+using Xamarin.Forms.Internals;
using AWebView = Android.Webkit.WebView;
namespace Xamarin.Forms.Platform.Android
{
- public class WebViewRenderer : ViewRenderer<WebView, AWebView>, IWebViewRenderer
+ public class WebViewRenderer : ViewRenderer<WebView, AWebView>, IWebViewDelegate
{
bool _ignoreSourceChanges;
FormsWebChromeClient _webChromeClient;
UpdateCanGoBackForward();
}
- void OnEvalRequested(object sender, EventArg<string> eventArg)
+ void OnEvalRequested(object sender, EvalRequested eventArg)
{
- LoadUrl("javascript:" + eventArg.Data);
+ LoadUrl("javascript:" + eventArg.Script);
}
void OnGoBackRequested(object sender, EventArgs eventArgs)
using System.Threading.Tasks;
using System.Windows.Navigation;
using Microsoft.Phone.Controls;
+using Xamarin.Forms.Internals;
namespace Xamarin.Forms.Platform.WinPhone
{
- public class WebViewRenderer : ViewRenderer<WebView, WebBrowser>, IWebViewRenderer
+ public class WebViewRenderer : ViewRenderer<WebView, WebBrowser>, IWebViewDelegate
{
WebNavigationEvent _eventState;
bool _updating;
public async void LoadHtml(string html, string baseUrl)
{
string fileName = string.Format("formslocal_{0}.html", DateTime.Now.Ticks);
- ;
+
await SaveToIsoStore(fileName, html);
Control.Navigate(new Uri(fileName, UriKind.Relative));
}
UpdateCanGoBackForward();
}
- void OnEvalRequested(object sender, EventArg<string> eventArg)
+ void OnEvalRequested(object sender, EvalRequested eventArg)
{
- Control.Dispatcher.BeginInvoke(() => Control.InvokeScript("eval", eventArg.Data));
+ Control.Dispatcher.BeginInvoke(() => Control.InvokeScript("eval", eventArg.Script));
}
void OnGoBackRequested(object sender, EventArgs eventArgs)
using System.ComponentModel;
using Windows.UI.Core;
using Windows.UI.Xaml.Controls;
+using Xamarin.Forms.Internals;
#if WINDOWS_UWP
namespace Xamarin.Forms.Platform.WinRT
#endif
{
- public class WebViewRenderer : ViewRenderer<WebView, Windows.UI.Xaml.Controls.WebView>, IWebViewRenderer
+ public class WebViewRenderer : ViewRenderer<WebView, Windows.UI.Xaml.Controls.WebView>, IWebViewDelegate
{
WebNavigationEvent _eventState;
bool _updating;
UpdateCanGoBackForward();
}
- async void OnEvalRequested(object sender, EventArg<string> eventArg)
+ async void OnEvalRequested(object sender, EvalRequested eventArg)
{
- await Control.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, async () => await Control.InvokeScriptAsync("eval", new[] { eventArg.Data }));
+ await Control.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, async () => await Control.InvokeScriptAsync("eval", new[] { eventArg.Script }));
}
void OnGoBackRequested(object sender, EventArgs eventArgs)
using System;
using System.Drawing;
using System.ComponentModel;
+using Xamarin.Forms.Internals;
#if __UNIFIED__
using UIKit;
using Foundation;
namespace Xamarin.Forms.Platform.iOS
{
- public class WebViewRenderer : UIWebView, IVisualElementRenderer, IWebViewRenderer
+ public class WebViewRenderer : UIWebView, IVisualElementRenderer, IWebViewDelegate
{
EventTracker _events;
bool _ignoreSourceChanges;
UpdateCanGoBackForward();
}
- void OnEvalRequested(object sender, EventArg<string> eventArg)
+ void OnEvalRequested(object sender, EvalRequested eventArg)
{
- EvaluateJavascript(eventArg.Data);
+ EvaluateJavascript(eventArg.Script);
}
void OnGoBackRequested(object sender, EventArgs eventArgs)
--- /dev/null
+<Type Name="EvalRequested" FullName="Xamarin.Forms.Internals.EvalRequested">
+ <TypeSignature Language="C#" Value="public class EvalRequested : EventArgs" />
+ <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit EvalRequested extends System.EventArgs" />
+ <AssemblyInfo>
+ <AssemblyName>Xamarin.Forms.Core</AssemblyName>
+ <AssemblyVersion>2.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.EventArgs</BaseTypeName>
+ </Base>
+ <Interfaces />
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ <Members>
+ <Member MemberName=".ctor">
+ <MemberSignature Language="C#" Value="public EvalRequested (string script);" />
+ <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(string script) cil managed" />
+ <MemberType>Constructor</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>2.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Parameters>
+ <Parameter Name="script" Type="System.String" />
+ </Parameters>
+ <Docs>
+ <param name="script">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Script">
+ <MemberSignature Language="C#" Value="public string Script { get; }" />
+ <MemberSignature Language="ILAsm" Value=".property instance string Script" />
+ <MemberType>Property</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>2.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>System.String</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <value>To be added.</value>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ </Members>
+</Type>
--- /dev/null
+<Type Name="EvalRequested" FullName="Xamarin.Forms.EvalRequested">
+ <TypeSignature Language="C#" Value="public class EvalRequested : EventArgs" />
+ <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit EvalRequested extends System.EventArgs" />
+ <AssemblyInfo>
+ <AssemblyName>Xamarin.Forms.Core</AssemblyName>
+ <AssemblyVersion>2.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.EventArgs</BaseTypeName>
+ </Base>
+ <Interfaces />
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ <Members>
+ <Member MemberName=".ctor">
+ <MemberSignature Language="C#" Value="public EvalRequested (string script);" />
+ <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(string script) cil managed" />
+ <MemberType>Constructor</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>2.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Parameters>
+ <Parameter Name="script" Type="System.String" />
+ </Parameters>
+ <Docs>
+ <param name="script">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Script">
+ <MemberSignature Language="C#" Value="public string Script { get; }" />
+ <MemberSignature Language="ILAsm" Value=".property instance string Script" />
+ <MemberType>Property</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>2.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>System.String</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <value>To be added.</value>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ </Members>
+</Type>
--- /dev/null
+<Type Name="IWebViewDelegate" FullName="Xamarin.Forms.IWebViewDelegate">
+ <TypeSignature Language="C#" Value="public interface IWebViewDelegate" />
+ <TypeSignature Language="ILAsm" Value=".class public interface auto ansi abstract IWebViewDelegate" />
+ <AssemblyInfo>
+ <AssemblyName>Xamarin.Forms.Core</AssemblyName>
+ <AssemblyVersion>2.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Interfaces />
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ <Members>
+ <Member MemberName="LoadHtml">
+ <MemberSignature Language="C#" Value="public void LoadHtml (string html, string baseUrl);" />
+ <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void LoadHtml(string html, string baseUrl) cil managed" />
+ <MemberType>Method</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>2.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>System.Void</ReturnType>
+ </ReturnValue>
+ <Parameters>
+ <Parameter Name="html" Type="System.String" />
+ <Parameter Name="baseUrl" Type="System.String" />
+ </Parameters>
+ <Docs>
+ <param name="html">To be added.</param>
+ <param name="baseUrl">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="LoadUrl">
+ <MemberSignature Language="C#" Value="public void LoadUrl (string url);" />
+ <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void LoadUrl(string url) cil managed" />
+ <MemberType>Method</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>2.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>System.Void</ReturnType>
+ </ReturnValue>
+ <Parameters>
+ <Parameter Name="url" Type="System.String" />
+ </Parameters>
+ <Docs>
+ <param name="url">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ </Members>
+</Type>
--- /dev/null
+<Type Name="IWebViewRenderer" FullName="Xamarin.Forms.IWebViewRenderer">
+ <TypeSignature Language="C#" Value="public interface IWebViewRenderer" />
+ <TypeSignature Language="ILAsm" Value=".class public interface auto ansi abstract IWebViewRenderer" />
+ <AssemblyInfo>
+ <AssemblyName>Xamarin.Forms.Core</AssemblyName>
+ <AssemblyVersion>2.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Interfaces />
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ <Members>
+ <Member MemberName="LoadHtml">
+ <MemberSignature Language="C#" Value="public void LoadHtml (string html, string baseUrl);" />
+ <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void LoadHtml(string html, string baseUrl) cil managed" />
+ <MemberType>Method</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>2.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>System.Void</ReturnType>
+ </ReturnValue>
+ <Parameters>
+ <Parameter Name="html" Type="System.String" />
+ <Parameter Name="baseUrl" Type="System.String" />
+ </Parameters>
+ <Docs>
+ <param name="html">To be added.</param>
+ <param name="baseUrl">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="LoadUrl">
+ <MemberSignature Language="C#" Value="public void LoadUrl (string url);" />
+ <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void LoadUrl(string url) cil managed" />
+ <MemberType>Method</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>2.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>System.Void</ReturnType>
+ </ReturnValue>
+ <Parameters>
+ <Parameter Name="url" Type="System.String" />
+ </Parameters>
+ <Docs>
+ <param name="url">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ </Members>
+</Type>