ITMS-90809:不推荐使用的 API 使用 - Apple 将停止接受使用 UIWebView API 的应用程序的提交
Posted
技术标签:
【中文标题】ITMS-90809:不推荐使用的 API 使用 - Apple 将停止接受使用 UIWebView API 的应用程序的提交【英文标题】:ITMS-90809:Deprecated API Usage-Apple will stop accepting submissions of apps that use UIWebView API 【发布时间】:2019-10-23 05:21:20 【问题描述】:我看到了一些其他同名的问题,但我的问题不同。
昨天,我将我的应用程序上传到了 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>
【问题讨论】:
我创建了一个新项目并在那里添加您的代码,它适用于我。你的项目中还有其他代码吗? @JackHua-MSFT 没有添加其他代码,可以分享一个示例吗? 您可以查看示例here,让我知道它是否适合您。 @JackHua-MSFT 我测试了你的示例代码,它工作正常。我在我的项目中使用了完全相同的代码,但显示了异常。我用的是XF版本:4.3.0.778476-pre1,这个异常还有其他原因吗? 我在 4.3.0.778476-pre1 下测试了我的样本,它也可以工作。如果可以分享您的项目,我可以为您检查。 【参考方案1】:更新
这个问题已经解决了,可以在下面的回答中找到解决方法
ITMS-90909: Deprecated API Usage with iOS in Xamarin Forms app
这是 Github 上的 Xamarin.Forms 的一个未解决的错误
截至目前,我在线程上没有看到任何解决方法或其他内容,但您可以等待Xamarin.Forms
的下一版本修复它
更新:看到了一种可行的解决方法,请查看https://github.com/xamarin/Xamarin.Forms/issues/7323#issuecomment-527294907
【讨论】:
这行吗? forums.xamarin.com/discussion/129626/… 理想情况下,这应该可以工作,继续试一试。另外,如果您有最新的 XF,我猜您已经准备好使用WKWebViewRenderer
。我不确定
我会用这个来测试飞行并给你更新,谢谢。
我用截图编辑了问题,你能看一下吗?
你确定控制在第二个if条件下,永远不会为空吗?以上是关于ITMS-90809:不推荐使用的 API 使用 - Apple 将停止接受使用 UIWebView API 的应用程序的提交的主要内容,如果未能解决你的问题,请参考以下文章
ITMS-90809:不推荐使用的 API 使用 - Apple 将停止接受使用 UIWebView API 的应用程序的提交
ITMS-90809:不推荐使用的 API - 不再接受使用 UIWebView 的新应用程序。相反,使用 WKWebView 来提高安全性和可靠性
ITMS-90809:框架上的 UIWebView API 弃用
ITMS-90809:使用 react-native-html-to-pdf 时已弃用 API 使用警告