Устранение неполадок в фоновом режиме газетного киоска IOS

Я запускаю приложение газетного киоска и сначала тестирую всю структуру, чтобы посмотреть, у кого все работает. Я уже загрузил проблему, вызванную уведомлением на переднем плане. но я не знаю, как загрузить в фоновом режиме, или, по крайней мере, я что-то упускаю... Вот что я добавил в plist: plist

Приложение предназначено для IOS 5... вот мой код... конечно, я также реализовал три метода URLConnection NKAssetDownload

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    if ([launchOptions objectForKey:UIApplicationLaunchOptionsNewsstandDownloadsKey] || [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey]) {
        NKLibrary *nkLib = [NKLibrary sharedLibrary];
        for(NKAssetDownload *asset in [nkLib downloadingAssets]) {
            [asset downloadWithDelegate:self];
        }
    }else{
        [[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge |
                                                                               UIRemoteNotificationTypeSound |
                                                                               UIRemoteNotificationTypeAlert |
                                                                               UIRemoteNotificationTypeNewsstandContentAvailability
                                                                               )];
    }
    [[NSUserDefaults standardUserDefaults]setBool: YES forKey:@"NKDontThrottleNewsstandContentNotifications"];
    [[NSUserDefaults standardUserDefaults] synchronize];
    return YES;
}

-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo{
NSLog(@"didReceiveRemoteNotification");
if (userInfo) {
    NKIssue *issue4 = [[NKLibrary sharedLibrary] issueWithName:@"01_Primera"];
    if (!issue4) {
        issue4= [[NKLibrary sharedLibrary] addIssueWithName:@"01_Primera" date:[NSDate date]];
    }
    if([issue4 status]==NKIssueContentStatusNone) {
        NSURL *downloadURL = [NSURL URLWithString:@"http://www.viggiosoft.com/media/data/blog/newsstand/magazine-4.pdf"];
        NSURLRequest *req = [NSURLRequest requestWithURL:downloadURL];
        NKAssetDownload *assetDownload = [issue4 addAssetWithRequest:req];
        [assetDownload downloadWithDelegate:self];
    }
}

}

Что я упускаю, а также есть ли у меня лишний ненужный код? пожалуйста помоги.


person user2387149    schedule 24.12.2013    source источник


Ответы (1)


  • Если вы тестируете пробуждение приложения (после его смахивания) с уведомлением с доступным содержимым: 1 на iOS7, в нем есть ошибка: прочитайте здесь и здесь (войдите под своей учетной записью разработчика). Он должен работать на iOS 5-6, если у вас есть устройство для тестирования, которое не было обновлено.

  • Вам также потребуется ключ в Info.plist: Необходимые фоновые режимы - газетный киоск -контент

  • Наконец, в вашем коде, я думаю, вы должны немного изменить свой didFinishLaunchingWithOptions:

    if ([launchOptions objectForKey:UIApplicationLaunchOptionsNewsstandDownloadsKey] || [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey]) {        
         [self handleNotification:launchOptions];        
    }
    
    //...other code...
    
    //This code can be the same as with didReceiveRemoveNotification
    
    -(void) handleNotification:(NSDictionary*)userInfo{
    
        //check userInfo for "content-available" key
        //if there is content-available:1 check for an issue_id/content_id in the rest of the notification payload (userInfo), and download the issue
    
    }
    
person Vrasidas    schedule 04.01.2014
comment
У меня уже были обязательные фоновые режимы - газетный киоск-контент и мой код уже такой. Я попытался открыть приложение, затем нажать кнопку «Домой» и отправить оповещение. Я получаю предупреждение, но загрузка не начинается. Я пробовал с ios7.0.4 и с 5.1.1 и все те же результаты. Он работает на переднем плане, а также когда я прокручиваю HUD уведомлений на экране блокировки, чтобы открыть приложение. Что еще может быть, помогите. - person user2387149; 06.01.2014
comment
Я НАКОНЕЦ-ТО ПОНЯЛ! МНЕ ТАКЖЕ НУЖНЫ Обязательные фоновые режимы - приложение загружает контент в ответ на push-уведомления - person user2387149; 10.01.2014