如何在iOS 8扩展应用程序的状态栏中指示网络活动



我想在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。

最新更新