Я видел некоторые другие вопросы с таким же названием, но мой вопрос другой.
Вчера я загрузил свое приложение в TestFlight, и через некоторое время Apple отправила мне это предупреждение:
ITMS-90809: устаревшее использование API - Apple прекратит прием заявок на приложения, использующие API UIWebView. См. https://developer.apple.com/documentation/uikit/uiwebview для получения дополнительной информации.
Я использую WebView
для отображения данных HTML в моем приложении. Также я использовал WebView
для воспроизведения аудио и видео. Так это предупреждение отклоняет мое приложение при отправке на проверку или я должен изменить эти функции с некоторыми другими API?
В этой ссылке , предоставленной AppStore, рассказывающей об использовании WKWebView
вместо UIWebView
, я пробовал это, и такого свойства не найдено в XAML. Нужно ли устанавливать какие-либо пакеты для получения этой функции? Кроме того, с помощью WKWebView
можно ли воспроизводить аудио, видео и показывать данные HTML в приложении?
Обновление 1
Получение System.ArumentNullException
при работес пользовательским рендерером. Я что-то пропустил?
Обновление 2: коды визуализации PCL
public class MyWebView : WebView
{
public static readonly BindableProperty UrlProperty = BindableProperty.Create(
propertyName: "Url",
returnType: typeof(string),
declaringType: typeof(MyWebView),
defaultValue: default(string));
public string Url
{
get { return (string)GetValue(UrlProperty); }
set { SetValue(UrlProperty, value); }
}
}
Пользовательский рендер для этого класса на iOS:
[assembly: ExportRenderer(typeof(MyWebView), typeof(MyWebViewRenderer))]
namespace WKWebViewDemo.iOS
{
public class MyWebViewRenderer : ViewRenderer<MyWebView, WKWebView>
{
WKWebView _wkWebView;
protected override void OnElementChanged(ElementChangedEventArgs<MyWebView> e)
{
base.OnElementChanged(e);
if (Control == null)
{
var config = new WKWebViewConfiguration();
_wkWebView = new WKWebView(Frame, config);
SetNativeControl(_wkWebView);
}
if (e.NewElement != null)
{
Control.LoadRequest(new NSUrlRequest(new NSUrl(Element.Url)));
}
}
}
}
XAML
<StackLayout>
<local:MyWebView Url="https://www.microsoft.com" VerticalOptions="FillAndExpand"/>
</StackLayout>