作者:shirliyap | 来源:互联网 | 2023-01-30 12:57
我在应用程序的多个先前版本中使用了UIActivityViewController实例,以便通过AirDrop和其他服务共享内容。现在,即使没有重新编译,在iOS 11 Beta中运行应用程序时,对话框(UIActivityViewController实例)也会显示以下行,并显示消息“无法加载”:
这是代码:
let handlerOk = { () -> Void in
let activityItems = [NSURL(fileURLWithPath: fullPath, isDirectory: true)]
self.viewCOntrollerShare= UIActivityViewController(activityItems: activityItems, applicationActivities: nil)
if let viewCOntrollerShare= self.viewControllerShare {
viewControllerShare.popoverPresentationController?.sourceView = sender
let excludedActivities = [
UIActivityType.postToFacebook,
UIActivityType.postToTwitter,
UIActivityType.postToWeibo,
//UIActivityType.message,
//UIActivityType.mail,
UIActivityType.print,
UIActivityType.copyToPasteboard,
UIActivityType.assignToContact,
UIActivityType.saveToCameraRoll,
UIActivityType.addToReadingList,
UIActivityType.postToFlickr,
UIActivityType.postToVimeo,
UIActivityType.postToTencentWeibo,
UIActivityType.openInIBooks
]
viewControllerShare.excludedActivityTypes = excludedActivities
self.present(viewControllerShare, animated: true, completion: nil)
}
}
目前,我正在Swift 4中使用XCode 9进行编译,但是如上所述,如果在iOS 11中运行该应用的旧版本(与XCode 8编译),我认为这并不重要。 (来自TestFlight)问题是相同的。因此,这确实看起来像是iOS 11 API问题...
关于对话框初始化,是否有任何新内容可能阻止“无法加载”行出现?
编辑:我测试了使用相同共享对话框的第三方应用程序(来自Apple),发现该行属于iCloud。但是我没有在我的应用程序中使用iCloud,所以以前的UIActivityViewController行为是正确的:它什么也没显示。因此,我做了一个实验:从iOS的“设置”中禁用了该第三方应用程序的iCloud权限,它显示了同样不友好的“无法加载”消息。我希望这不是最终的iOS 11版本的工作方式,而只是一个Beta问题。
就是说,仍然欢迎解决方法!谢谢!