iOS7后台抓取

6

我正在尝试实现新的iOS7应用程序刷新功能,但我认为它不正常工作。

我添加到info.plist

必需的后台模式 - 应用程序从网络下载内容

在我的主视图控制器中,

  1. UIApplicationDelegate is set as delegate
  2. In Viewdidload I put in [[UIApplication sharedApplication] setMinimumBackgroundFetchInterval:1.0];

  3. I add the following method

    - (void)application:(UIApplication *)application 
        performFetchWithCompletionHandler: 
        (void (^)(UIBackgroundFetchResult result))completionHandler {
            NSLog(@"Refresh from Background");
    }
    


我插上我的iPhone并启动应用程序,然后进入“调试”->“模拟后台获取”

NSLog不会打印出来。(如果我的应用程序在前景中,它会将其放到后台)

谢谢!

2个回答

3

1
你可以在 https://developer.apple.com/downloads/index.action# 中搜索 ios_simplebackgroundfetch 和 simplebackgrdountransfer - 这两个样例应该会在 WWDC 2013 样例中出现。 - PetrV

0

你应该添加

[application setMinimumBackgroundFetchInterval:UIApplicationBackgroundFetchIntervalMinimum];

在方法中

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 

也有这个方法

 (void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult result))

completionHandler 应该添加到您的应用程序委托类中,而不是 UIViewController,请参阅此教程:http://www.objc.io/issue-5/multitasking.html


2
我已经按照这种方式实现了它,但只有在我从Xcode(模拟后台获取)调用它时才有效。我从未收到设备的通知... - Gossamer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接