我看到了其他一些标题相同的问题,但是我的问题有所不同。
昨天,我将我的应用程序上传到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
。我想念什么吗?
更新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>
答案 0 :(得分:1)
这是Xamarin.Forms在Github上的一个开放错误
到目前为止,我在线程上看不到任何解决方法或任何东西,但是您可以等待Xamarin.Forms
的下一版本中修复它
更新:看到了一种可行的解决方法,请检查https://github.com/xamarin/Xamarin.Forms/issues/7323#issuecomment-527294907