Как я могу использовать WKWebView вместо UIWebView в Xamarin Forms WebView (iOS)

Я работаю над разработкой мобильных приложений с использованием Xamarin.Forms (PCL). Я использую Xamarin WebView для визуализации некоторого содержимого веб-представления, и у меня возникают проблемы с производительностью в приложении iOS. Итак, я проанализировал и обнаружил, что WKWebView улучшит производительность.

Как я могу использовать WKWebView в Xamarin Forms WebView вместо UIWebView? Доступен ли для этого какой-либо пользовательский рендеринг?


person Karthik    schedule 28.02.2017    source источник
comment
Нет, к сожалению, не существует средства визуализации, реализующего WKWebView, вам придется сделать это самостоятельно.   -  person pinedax    schedule 28.02.2017


Ответы (1)


Да, вы можете создать собственное средство визуализации с помощью WKWebView.

Пожалуйста, посмотрите ниже, это класс средства визуализации ios для WebView:

[assembly: ExportRenderer(typeof(CustomWebView), typeof(CustomWebViewRenderer))]
namespace DemoApp.iOS.Renderers
{
    public class CustomWebViewRenderer : ViewRenderer<CustomWebView, WKWebView>
    {
        protected override void OnElementChanged(ElementChangedEventArgs<CustomWebView> e)
        {
            base.OnElementChanged(e);
        }
    }
}

для получения дополнительной информации щелкните здесь .

person Pavan V Parekh    schedule 01.03.2017
comment
У вас есть фрагмент кода для сопоставления Xamarin.WebView с WKWebView? - person Karthik; 03.03.2017
comment
@Karthik см. Ссылку ниже, есть образец гибридного веб-представления, в котором используется WKWebview github.com/xamarin/xamarin-forms-samples/tree/master/ - person Pavan V Parekh; 03.03.2017
comment
@Karthik, примите мой ответ, если вам это помогло. Так что это поможет другим. - person Pavan V Parekh; 21.07.2017
comment
@PavanVParekh - У меня это не работает. Я создал новый проект и для начала установил Content для главной страницы в WebView, и он работает так, как ожидалось. Когда я создаю настраиваемое средство визуализации (я назвал его WebViewExt) с кодом, который вы включили выше (с заменой CustomWebView и CustomWebViewRenderer моими именами, конечно), я получаю пустое веб-представление. Нужно ли мне на самом деле самому устанавливать контроллер на OnElementChanged переопределение (через SetNativeControl)? - person jbyrd; 15.05.2018