Xamarin for Windows RT 中的自定义 Web 视图呈现器不起作用



我正在按照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 Content页面。android WebView渲染器正在执行/调试,但我没有得到任何Windows调试器,Xamarin.Forms中的代码正在运行。

我还尝试在 App.xaml 中添加var t = new Windows.Helpers.CustomWebViewRenderer();.cs以避免在构建后出现任何未包含(以便对类有一些引用(,但没有奏效。我错过了什么吗?

更简单的

方法是让 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。

最新更新