【问题标题】:Custom Webview renderer in Xamarin for Windows RT not workingXamarin for Windows RT 中的自定义 Webview 渲染器不起作用
【发布时间】:2016-02-01 10:46:44
【问题描述】:

我正在按照 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(); 以避免构建后出现任何不包含(以对类进行一些引用),但没有奏效。我有什么遗漏吗?

【问题讨论】:

  • 如果您通过@Vishnu 弹出您的解决方案,我会快速为您查找?我的联系方式在我的个人资料中。

标签: webview xamarin.ios windows-store-apps xamarin.forms


【解决方案1】:

更简单的方法是让 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 进行渲染。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-16
  • 1970-01-01
  • 2020-05-08
  • 1970-01-01
  • 1970-01-01
  • 2021-04-04
相关资源
最近更新 更多