ITMS-90809:不推荐使用的API-Apple将停止接受使用UIWebView API的应用程序的提交

时间:2019-10-23 05:21:20

标签: xamarin.forms webview app-store

我看到了其他一些标题相同的问题,但是我的问题有所不同。

昨天,我将我的应用程序上传到TestFlight,一段时间后,Apple向我发送了此警告:

ITMS-90809:不推荐使用的API-Apple将停止接受使用UIWebView API的应用程序的提交。有关更多信息,请参见https://developer.apple.com/documentation/uikit/uiwebview

我正在使用WebView在我的应用中显示HTML数据。另外,我已经使用WebView播放音频和视频。那么,此警告是否会在提交审阅时拒绝我的应用程序,还是应该使用其他一些API更改这些功能?

在AppStore提供的此link中,讲述了使用WKWebView而不是UIWebView的情况,我尝试了这一点,但在XAML上找不到这样的属性。我是否需要安装任何软件包才能获得该功能?另外,通过使用WKWebView,是否可以在应用程序中播放音频,视频和显示HTML数据?

更新1

使用自定义渲染器时获取System.ArumentNullException。我想念什么吗?

enter image description here

更新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>

1 个答案:

答案 0 :(得分:1)

这是Xamarin.Forms在Github上的一个开放错误

到目前为止,我在线程上看不到任何解决方法或任何东西,但是您可以等待Xamarin.Forms的下一版本中修复它

更新:看到了一种可行的解决方法,请检查https://github.com/xamarin/Xamarin.Forms/issues/7323#issuecomment-527294907