Qt + iOS - AppDelegate在哪里?

时间:2014-03-25 22:32:48

标签: c++ ios objective-c xcode qt

我一直在玩QtQuick / QtCreator ios项目。我有兴趣看看我是否可以制作一个使用ios7中的BackgroundFetch的Qt项目。

我无法弄清楚如何在我的QtCreator项目中做到这一点,所以我将生成的Xcode项目加载到Xcode中,看看我是否可以弄清楚如何在那里做到。我仍然可以进入项目的功能并添加"背景模式"但是,我无法找到通常用于设置获取间隔等的AppDelegate类型。

有没有人知道如何为Qt ios项目做这件事?

2 个答案:

答案 0 :(得分:0)

我最终为此创建了自己的解决方法: https://github.com/colede/qt-app-delegate

答案 1 :(得分:0)

在您的.pro中:

ios {
  OBJECTIVE_SOURCES = ios/ios_app_delegate.mm
}

在ios / ios_app_delegate.mm中:

#import "UIKit/UIKit.h"
#import "UserNotifications/UserNotifications.h"

@interface QIOSApplicationDelegate
@end

@interface QIOSApplicationDelegate (WoboqApplicationDelegate)
@end

@implementation QIOSApplicationDelegate (WoboqApplicationDelegate)

- (BOOL)application:(UIApplication *)application
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    NSLog(@"launch!");
    UNUserNotificationCenter* center = [UNUserNotificationCenter currentNotificationCenter];
    [center requestAuthorizationWithOptions:UNAuthorizationOptionBadge
      completionHandler:^(BOOL granted, NSError *error){
          if(granted == YES) {
              [[UIApplication sharedApplication] setMinimumBackgroundFetchInterval:UIApplicationBackgroundFetchIntervalMinimum];
          };
      }];
    return YES;
}

- (void)application:(UIApplication *)application
performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler
{
}
@end