我按照Xamarin中的指南HybridWebView
在Xamarin for Windows Desktop项目中编写Webview渲染器[assembly: ExportRenderer(typeof(Xamarin.Forms.WebView), typeof(ProApp.Windows.Helpers.CustomWebViewRenderer))]
namespace ProApp.Windows.Helpers
{
public class CustomWebViewRenderer : ViewRenderer<Xamarin.Forms.WebView, global::Windows.UI.Xaml.Controls.WebView>
{
protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.WebView> e)
{ //Debug Point
base.OnElementChanged(e);
if (this.Control == null)
{
}
}
}
}
我也在Android中类似地定义了WebView Renderer。我正在使用WebView运行Xamarin.Form内容页面。 android WebView渲染器正在执行/调试,但我没有得到任何Windows的调试器和Xamarin.Forms中的代码正在运行。
我还尝试在App.xaml.cs中添加var t = new Windows.Helpers.CustomWebViewRenderer();
以避免在构建之后出现任何非包含(以便对类有一些引用),但是没有用。我有什么遗失的吗?
答案 0 :(得分:0)
更简单的方法是让XF框架实现其webview代码。改为继承自WebViewRenderer。
[assembly: ExportRenderer(typeof(WebView), typeof(CustomWebViewRenderer))]
namespace Mobile.WinRT.Renderers
{
public class CustomWebViewRenderer: WebViewRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<WebView> e)
{
base.OnElementChanged(e);
if (Control != null)
{
}
}
}
}
另外,我建议在XF项目中创建一个简单的控件,称为CustomWebView,它只是从WebView继承而来。然后,您可以在应用程序中为此而不是每个可能的WebView进行渲染。