Comment gérer la connexion socket événements lorsque l'application est en arrière-plan?
Je veux utiliser la fonction suivante, même lorsque l'application est en arrière-plan?
- (void)stream:(NSStream *)theStream handleEvent:(NSStreamEvent)streamEvent
{
case NSStreamEventHasBytesAvailable:
{ NSLog(@"Event:NSStreamEventHasBytesAvailable");
if (theStream == _inputStream) {
NSLog(@"NSStreamEventHasBytesAvailable: on Input Stream");
uint8_t buffer[1024];
int len;
while ([_inputStream hasBytesAvailable]) {
len = [_inputStream read:buffer maxLength:sizeof(buffer)];
if (len > 0) {
NSString *output = [[NSString alloc] initWithBytes:buffer length:len encoding:NSASCIIStringEncoding];
if (nil != output) {
NSLog(@"server said: %@", output);
//to get local notification I am calling below method.
[self scheduleNotification];
}
}
}
}
break;
}
Le code ci-dessus est le travail fait dans le premier plan. J'ai fait le changement donné dans le document apple pour exécuter l'application en mode arrière-plan - voip.
Que dois-je écrire dans AppDelegate méthode?
- (void)applicationDidEnterBackground:(UIApplication *)application
{
}
Comment obtenir du flux:handleEvent appelé dans le fond?
Cela ne ressemble pas à une application VOIP. Q1: est-il? Q2: est-ce app ment pour l'app store ou l'utilisation à titre privé?
Encore une chose: même si l'utilisation de la voip mode, vous devez test sur l'appareil. Il ne fonctionnera pas sur simulateur.
Salut @rokjarc, cette prise de connexion entre le serveur et le client. Je veux montrer local notification à l'utilisateur lorsque le serveur envoie le message au client, c'est à dire que je veux utiliser l' - (void)stream:(NSStream *)theStream handleEvent:(NSStreamEvent)streamEvent en arrière - plan - (void)applicationDidEnterBackground:(UIApplication *)application que j'ai fait tous les changements nécessaires selon apple document. S'il vous plaît laissez-moi savoir si vous avez l'anser
Eh bien, je suppose que ce n'est pas la réponse que vous espériez, mais je ne vois pas d'autre possibilité. J'espère que quelqu'un d'autre sera de plus d'aide.
Merci pour votre aide.Je ne suis pas à l'aide de l'appareil qui pourrait être la raison, il n'affiche pas de contrôle sur le NSStream délégués. En attente de l'approbation d'apple pour le tester sur le périphérique. merci encore une fois.
Encore une chose: même si l'utilisation de la voip mode, vous devez test sur l'appareil. Il ne fonctionnera pas sur simulateur.
Salut @rokjarc, cette prise de connexion entre le serveur et le client. Je veux montrer local notification à l'utilisateur lorsque le serveur envoie le message au client, c'est à dire que je veux utiliser l' - (void)stream:(NSStream *)theStream handleEvent:(NSStreamEvent)streamEvent en arrière - plan - (void)applicationDidEnterBackground:(UIApplication *)application que j'ai fait tous les changements nécessaires selon apple document. S'il vous plaît laissez-moi savoir si vous avez l'anser
Eh bien, je suppose que ce n'est pas la réponse que vous espériez, mais je ne vois pas d'autre possibilité. J'espère que quelqu'un d'autre sera de plus d'aide.
Merci pour votre aide.Je ne suis pas à l'aide de l'appareil qui pourrait être la raison, il n'affiche pas de contrôle sur le NSStream délégués. En attente de l'approbation d'apple pour le tester sur le périphérique. merci encore une fois.
OriginalL'auteur HDdeveloper | 2012-06-14
Vous devez vous connecter pour publier un commentaire.
J'avais affaire similaire, problème tout à l'heure. Quelques points importants à garder à l'esprit:
Donc, si ce n'est pas une application voip vous pourriez réellement envie de les utiliser à distance les notifications d'alerte l'utilisateur directement, plutôt que de montrer de notification locale. Je suppose que c'est la seule façon pour votre application pour passer de validation de l'App Store.
De toute façon, les deux liens ici sur une aide peut vous être utile:
Comment une application iOS de garder une connexion TCP en vie indéfiniment, tandis que, dans le fond?
J'ai fini par utiliser la voip (comme vous le faites) et le jeu de silencieux boucle audio comme suggéré ici - il a travaillé. Vous ne savez pas si
ce silence boucle audio est toujours nécessaire.
Ce qui se passe pour TCP et UDP (avec multicast) lors de la connexion d'une Application iOS n'a saisir fond
Assurez-vous de lire Conseils pour le Développement d'une Application VoIP et Note technique TN2277:la mise en Réseau et le Multitâche
Hey, bon de vous entendre triés 🙂
alors comment faire pour afficher l'alerte à utiliser si l'application est en arrière-plan et des événements.....
Ce serait généralement être réalisé par l'envoi d'un APN de notification push d'un appareil.
Apple va rejeter si une application VoIP et joue un silencieux audio en arrière-plan maintenant?
OriginalL'auteur Rok Jarc