我想在iOS 8扩展应用程序中加载网页时显示网络活动。
但不能在扩展应用程序中使用[UIApplication sharedApplication]
。
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
return YES;
}
如何在分机应用中显示网络活动?
iOS 扩展在访问某些 API 方面存在限制。这些在扩展概述中定义。
访问共享应用程序对象,因此不能使用该对象上的任何方法
将头文件中标记的任何 API 与 NS_EXTENSION_UNAVAILABLE 宏或类似的不可用宏一起使用,或者使用不可用框架中的任何 API
例如,在 iOS 8.0 中,HealthKit 框架和 EventKit UI 框架不适用于应用扩展。
访问 iOS 设备上的摄像头或麦克风(与其他应用扩展不同,iMessage 应用可以访问这些资源,只要它正确配置 NSCameraUsageDescription 和 NSMicrophoneUsageDescription Info.plist 键)
执行长时间运行的后台任务
此限制的细节因平台而异,如本文档的扩展点章节中所述。
(应用扩展可以使用 NSURLSession 对象启动上传或下载,并将这些操作的结果报告给包含的应用。
使用"隔空投送"接收数据
(应用扩展可以使用 AirDrop 发送数据,方式与应用相同:使用 UIActivityViewController 类。
尝试使用 UIActivityIndicatorView。