首页 > 解决方案 > 如果 uri 在 xamarin 表单中为空,则使用 WKWebViewRenderer 打开一个空页面

问题描述

我正在为我的应用程序使用 WKWebView 渲染器。如果 url 无效/如果 url 是一个字符串,我想显示一个空网页。如何在我的渲染器中分配它?

if (e.NewElement != null)
            {
                HybridWebView hybridWebView = e.NewElement as HybridWebView;

                var uri = hybridWebView.Uri.ToString();

                if (uri.StartsWith("http") || uri.StartsWith("https"))
                {
                    LoadRequest(new NSUrlRequest(new NSUrl(uri)));
                }
                else 
                {
                    LoadHtmlString($"{uri}", null);
                }

                }


            }

标签: xamarinxamarin.formsxamarin.androidxamarin.ios

解决方案


试试下面的代码:

if (e.NewElement != null)
{
    HybridWebView hybridWebView = e.NewElement as HybridWebView;

    var uri = hybridWebView.Uri.ToString();

    if (uri.StartsWith("http") || uri.StartsWith("https"))
    {
         LoadRequest(new NSUrlRequest(new NSUrl(uri)));
    }
    else 
    {
         string nullBodyHtml = "<html><body></body></html>";
         LoadHtml(nullBodyHtml, null);
    }

}

您可以自定义nullBofyHtml以使视图在uri为 null 时显示默认效果。

如 :string nullbodyString = "<html><body><h1>Xamarin.Forms invalid url</h1></body></html>";

效果如下:

在此处输入图像描述


推荐阅读