WebHU - Programozási kérdések és válaszok

Push értesítés, amely a háttérfrissítés befejezése előtt jelenik meg (leküldéses háttérfrissítéssel)

Megpróbálom beállítani az alkalmazásomat, hogy amikor leküldéses üzenet érkezik, először lekéri az új üzeneteket, mielőtt megjeleníti a push értesítést. A push értesítésemben a content-available = 1 beállítás van beállítva, valamint a Plistben engedélyezve vannak a kapcsolók. Megvalósítottam:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))handler
{

    if([[userInfo objectForKey:@"aps"] objectForKey:@"content-available"]){

        NSLog(@"Doing the background refresh");
        UINavigationController *navigationController=(UINavigationController *)[[[UIApplication sharedApplication] keyWindow] rootViewController];

        MYViewController *MYViewController = (MYViewController *)[[navigationController viewControllers] objectAtIndex:1];

        [myViewController.currentUser refreshMessagesArrayWithCompletionHandler:^(BOOL successful, BOOL newMiaos) {

            NSLog(@"messages refreshed the array now has %lu messages",(unsigned long)[myViewController.currentUser.messages count]);
            handler(UIBackgroundFetchResultNewData);

        }];




    }
}

Az alkalmazás leküldése a háttérbefejezés befejezése előtt vagy a frissítés során érkezik meg. Biztosan be kell jönnie utána. Rosszul kezelem ezt? Kell helyette csendes push értesítést küldenem, és a befejezési blokk után local értesítést kell mutatnom?


Válaszok:


1

Az Önéhez hasonló problémám volt,
egy ehhez hasonló push értesítés küldésével megoldottam

{
        "alert": null,
        "content-available": 1,
        "data-id" : "some_data_id"
}

Ebben az esetben a push értesítés nem jelenik meg, így a háttérben történő lekérés során végrehajthatja a letöltést és helyi értesítést indíthat el.

10.06.2015
  • azonnal aktiválható a helyi értesítés? a helyi értesítésekhez is ugyanazok az engedélyek szükségesek, mint a push értesítésekhez? Az alkalmazásom megkérdezi, hogy a felhasználó engedélyezi-e a push értesítések használatát, ez ugyanaz a helyinél? 10.06.2015
  • azonnal indítható-e helyi értesítés ›› igen, a helyi értesítéshez nincs szükség engedélyre, de engedélyre van szüksége, mivel távoli értesítést is kap. 10.06.2015
  • ah, bocsánat. Úgy tűnik, iOS8 rendszeren a helyi értesítésekhez bizonyos engedélyekre van szükség, kérjük, ellenőrizze a stackoverflow.com/questions/24946650/ 10.06.2015
  • Ez egy kis káosz, nem? Ha az alkalmazás engedélyt kér a távoli értesítésekhez és a helyi értesítésekhez.... attól tart, hogy elriasztja a felhasználókat. 10.06.2015
  • Szerintem ugyanaz az engedély. Ha a távoli leküldéses értesítésekre kiterjed, akkor a helyi értesítésekre is kiterjed. 10.06.2015
  • hogy tud átadni egy karakterláncot is? Az alert korábban a karakterláncomat tartalmazta, de most nulla. Megpróbáltam hozzáadni someMessage:pushMessage-t a hasznos terheléshez, de amikor megkapom a push üzenetet, és megpróbálom lekérni a karakterláncot az NSString *message = [[userInfo objectForKey:@aps] objectForKey:@someMessage] használatával, nullát kapok. Bármilyen ötletet? 10.06.2015
  • be kell szereznie a data-id-t, majd kérnie kell a háttérrendszeréhez, és megkapnia az üzenetet. 11.06.2015
  • mi az adatazonosító? ellenőrizte az Apple dokumentumokat az APN-ben, és nem látott róla semmit 11.06.2015
  • Új anyagok

    A rádiógomb ellenőrzött eseményének használata a jQueryben
    Ebben a cikkben látni fogjuk, hogyan kell dolgozni a jquery választógombbal ellenőrzött eseményeivel. A választógombok HTML gombok, amelyek segítenek kiválasztani egyetlen értéket egy csoportból...

    Körkörös függőségek megoldása terraformban adatforrásokkal – lépésről lépésre
    Mi az a körkörös függőségek Dolgozzunk egy egyszerű eseten, amikor az SQS-sor és az S3-vödör közötti körkörös függőség problémája van egy egymástól függő címkeérték miatt. provider..

    Miért érdemes elkezdeni a kódolást 2023-ban?
    01100011 01101111 01100100 01100101 — beep boop beep boop Világunk folyamatosan fejlődik a technológia körül, és naponta fejlesztenek új technológiákat a valós problémák megoldására. Amint..

    🎙 Random Noise #2  – Örökbefogadás és hit
    az analitika íratlan világának gondozása Szeretné, hogy ezek a frissítések a postaládájába kerüljenek? Iratkozzon fel itt . "Ha önvezető autókat gyártanak, akkor mi miért ne..

    A legrosszabb politika és prediktív modellek májátültetésre jelöltek számára az Egyesült Államokban
    A máj (vagy óangolul lifer) az emberi test legnehezebb belső szervére utal, amely csendesen működik a nap 24 órájában. Mit csinál a máj? 500 feladatot hajt végre a szervezet egészségének..

    5 webhely, amely 2022-ben fejleszti front-end fejlesztői készségeit
    Frontendmentor.io A tényleges projektek létrehozásával a Frontendmentor.io segítséget nyújt a front-end kódolási képességeinek fejlesztésében. A kódolást azután kezdheti meg, hogy..

    Mikor kell használni a Type-t az interfészhez képest a TypeScriptben?
    A TypeScript a JavaScript gépelt szuperkészlete, amely statikus gépelést ad a nyelvhez. Ez megkönnyíti a robusztus és karbantartható kód írását azáltal, hogy a hibákat a fordítási időben..