首页 文章

Xamarin for Windows RT中的自定义Webview渲染器无法正常工作

提问于
浏览
0

我正在按照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(); 以避免在构建之后出现任何非包含(对某个类有一些引用),但是没有't work. Is there anything I' m缺失?

1 回答

  • 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 .

相关问题