//

Push notificaties

Push notificaties discussie in Ontwikkelen voor iOS forum; ( verdwijnt na registratie ) Hallo, Ik loop al een weekje te testen en proberen met push notificaties. Dit gaat allemaal prima, mijn server werkt ook, mijn berichten komen mooi ...



Ga terug   iPhone, iPod touch, iPad en Apple TV forum > Development > Ontwikkelen voor iOS
Wachtwoord vergeten? Registreren!
Registreer FAQ Ledenlijst Kalender Zoeken Berichten van vandaag Markeer forums als gelezen
  #1  
Oud 25-03-11, 00:27
Dreissen Dreissen is offline
• iOS 7.1.1
• 5.1.1
• Besturingssysteem: Mac OS X
 
Geregistreerd: Feb 2009
Berichten: 429
Standaard Push notificaties

Hallo,

Ik loop al een weekje te testen en proberen met push notificaties.
Dit gaat allemaal prima, mijn server werkt ook, mijn berichten komen mooi aan op mijn Iphone, allemaal prima dus en helemaal blij dat het zo makkelijk zonder problemen gelukt was.
Echter het werkte alleen omdat ik mijn "devicetoken" wist, als andere telefoons de app installeren moet dit allemaal vanzelf gaan.
Ik moet de tokens verzamelen en als ik een push wil die tokens oproepen, dit werkt allemaal maar ik krijg op de een of andere manier de token niet verzonden.

Dit is wat ik doe:

In de appdelegate staat het volgende:

PHP-code:
- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken 
    
    
NSString *str = [NSString 
                     stringWithFormat
:@"Device Token=%@",deviceToken];
    
NSLog(str);
    

Als ik nu mijn NSLog bekijk staat daar netjes de token, maar ik wil dat deze tokens naar mijn database worden gestuurd.
Daar gebruik ik de volgende code voor.

PHP-code:
- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken 
    
    
NSString *srt =[NSString stringWithFormat:@"?token=%@",deviceToken];
    
    
NSString *hostStr = @"http://www.website.nl/token.php";
    
hostStr = [hostStr stringByAppendingString:srt];
    
NSData *dataURL =  [NSData dataWithContentsOfURL: [ NSURL URLWithStringhostStr ]];    
    
NSString *serverOutput = [[NSString allocinitWithData:dataURL encodingNSASCIIStringEncoding];
    
    
    if([
serverOutput isEqualToString:@"succes"]){
        
        
//Hier komt dan een alert ofzo als het allemaal gelukt is niet belangrijk
    
}    
    

Het php bestand werkt met een simpele GET in de url geef ik de token aan en dan upload het php script naar de database, dit werkt ook allemaal prima.
Alleen gaat het fout bij de Iphone, bij het versturen van de token/oproepen van de URL.
Ook in het NSLog zie ik geen fouten alleen dat hij nu blijft hangen op "Registering for push notifications..."

Ik weet het even niet meer, jullie enig idee?
Advertentie
Advertentie Gesponsorde links (verdwijnt na registratie)

  #2  
Oud 26-03-11, 14:54
Dreissen Dreissen is offline
• iOS 7.1.1
• 5.1.1
• Besturingssysteem: Mac OS X
 
Geregistreerd: Feb 2009
Berichten: 429
Standaard

Iemand?
  #3  
Oud 27-03-11, 13:43
DJ14 DJ14 is offline
• iOS 7.1
• 4.3.5
• Besturingssysteem: Mac OS X
 
Geregistreerd: Feb 2010
Berichten: 121
Standaard

Misschien dat je hier iets aan hebt (met name nummer 5 onder "Creating the iPhone Application").
  #4  
Oud 28-03-11, 01:32
Dreissen Dreissen is offline
• iOS 7.1.1
• 5.1.1
• Besturingssysteem: Mac OS X
 
Geregistreerd: Feb 2009
Berichten: 429
Standaard

Citaat:
Oorspronkelijk geplaatst door DJ14 Bekijk bericht
Misschien dat je hier iets aan hebt (met name nummer 5 onder "Creating the iPhone Application").
Daar wordt de code opgeslagen in de NSLog en dat kan ik al, maar dat heeft alleen zin voor mijn eigen token.
Ik moet de tokens van al mijn gebruikers hebben en die verzenden.
Zie mijn voorbeeld code, maar op de een of andere manier werkt die niet.
Daar licht dus het probleem, hoe doen andere developers dat hier met push, hun tokens verzamelen?
  #5  
Oud 28-03-11, 10:35
Nikooos's schermafbeelding
Nikooos Nikooos is offline
• iOS 10.0.2
• 10.0.2
• Besturingssysteem: Mac OS X
 
Geregistreerd: Nov 2007
Locatie: Tilburg
Berichten: 3.172
Standaard

Ik sla mijn token op in de NSUserDefaults en pas als het daadwerkelijk nodig is, verstuur ik de tokens naar de server.

Overigens haal ik wel de spaties en de <> uit de tokens die worden opgehaald. Kan goed zijn dat dat ook bij jou een probleem is? Misschien even zorgen dat je urlstring wordt omgezet en bijvoorbeeld de spaties vervangt voor %20 zoals die in een URL horen te zijn.
  #6  
Oud 28-03-11, 12:55
Dreissen Dreissen is offline
• iOS 7.1.1
• 5.1.1
• Besturingssysteem: Mac OS X
 
Geregistreerd: Feb 2009
Berichten: 429
Standaard

Citaat:
Oorspronkelijk geplaatst door psychonikeo Bekijk bericht
Ik sla mijn token op in de NSUserDefaults en pas als het daadwerkelijk nodig is, verstuur ik de tokens naar de server.

Overigens haal ik wel de spaties en de <> uit de tokens die worden opgehaald. Kan goed zijn dat dat ook bij jou een probleem is? Misschien even zorgen dat je urlstring wordt omgezet en bijvoorbeeld de spaties vervangt voor %20 zoals die in een URL horen te zijn.
Pfoe geen idee hoe ik die < > eruit haal of spaties, met php zou me dit zijn gelukt maar met obj.
Kun je een beetje helpen.
  #7  
Oud 28-03-11, 13:19
Nikooos's schermafbeelding
Nikooos Nikooos is offline
• iOS 10.0.2
• 10.0.2
• Besturingssysteem: Mac OS X
 
Geregistreerd: Nov 2007
Locatie: Tilburg
Berichten: 3.172
Standaard

Citaat:
Oorspronkelijk geplaatst door Dreissen Bekijk bericht
Pfoe geen idee hoe ik die < > eruit haal of spaties, met php zou me dit zijn gelukt maar met obj.
Kun je een beetje helpen.
Ik wilde het niet meteen verklappen, misschien dat je het zelf al ergens had kunnen vinden.

Persoonlijk haal ik gewoon de spaties en de <> eruit op deze manier:
Code:
NSString *token = [[[[deviceToken description] stringByReplacingOccurrencesOfString:@"<"withString:@""] 
                        stringByReplacingOccurrencesOfString:@">" withString:@""] 
                       stringByReplacingOccurrencesOfString: @" " withString: @""];
maar op deze manier worden (bijna) alle tekens die niet in een URL horen, vervangen door de bijbehorende percentagetekens:
Code:
NSString *urlstring = [rawstring stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
  #8  
Oud 28-03-11, 13:31
Dreissen Dreissen is offline
• iOS 7.1.1
• 5.1.1
• Besturingssysteem: Mac OS X
 
Geregistreerd: Feb 2009
Berichten: 429
Standaard

Citaat:
Oorspronkelijk geplaatst door psychonikeo Bekijk bericht
Ik wilde het niet meteen verklappen, misschien dat je het zelf al ergens had kunnen vinden.

Persoonlijk haal ik gewoon de spaties en de <> eruit op deze manier:
Code:
NSString *token = [[[[deviceToken description] stringByReplacingOccurrencesOfString:@"<"withString:@""] 
                        stringByReplacingOccurrencesOfString:@">" withString:@""] 
                       stringByReplacingOccurrencesOfString: @" " withString: @""];
maar op deze manier worden (bijna) alle tekens die niet in een URL horen, vervangen door de bijbehorende percentagetekens:
Code:
NSString *urlstring = [rawstring stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
Ja thanks, maar ik krijg hem nog steeds niet werkend nu.
Op de een of andere manier kan ik de link (zie code in begin post) niet aanroepen en dan in de URL de token meegeven.
Ik zie de fout niet, want deze code werkt wel gewoon als ik er een formulier van maak.
Hoe verzend jij je tokens dan naar de server?
  #9  
Oud 28-03-11, 20:09
Nikooos's schermafbeelding
Nikooos Nikooos is offline
• iOS 10.0.2
• 10.0.2
• Besturingssysteem: Mac OS X
 
Geregistreerd: Nov 2007
Locatie: Tilburg
Berichten: 3.172
Standaard

Citaat:
Oorspronkelijk geplaatst door Dreissen Bekijk bericht
Ja thanks, maar ik krijg hem nog steeds niet werkend nu.
Op de een of andere manier kan ik de link (zie code in begin post) niet aanroepen en dan in de URL de token meegeven.
Ik zie de fout niet, want deze code werkt wel gewoon als ik er een formulier van maak.
Hoe verzend jij je tokens dan naar de server?
Doe eens een NSlog van je uiteindelijke hoststring. Kan je laten zien hoe die eruit ziet? Misschien zit daar een foutje eens.

Die output kan je dan even copy-posten in je browser, om te zien of dat wel werkt.

Dit is mijn code in ieder geval voor het versturen:
Code:
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http://url.nl/request.php?deviceId=%@",dev]];
        NSError *error;
        NSString *results = [NSString stringWithContentsOfURL:url encoding:NSASCIIStringEncoding error:&error];
  #10  
Oud 28-03-11, 21:44
Dreissen Dreissen is offline
• iOS 7.1.1
• 5.1.1
• Besturingssysteem: Mac OS X
 
Geregistreerd: Feb 2009
Berichten: 429
Standaard

Zie bericht hieronder.

Laatst gewijzigd door Dreissen; 28-03-11 om 21:51.
  #11  
Oud 28-03-11, 21:51
Dreissen Dreissen is offline
• iOS 7.1.1
• 5.1.1
• Besturingssysteem: Mac OS X
 
Geregistreerd: Feb 2009
Berichten: 429
Standaard

Citaat:
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http://website.nl/push/reg_token.php?token=%@",deviceToken]];
NSError *error;
NSString *results = [NSString stringWithContentsOfURL:url encoding:NSASCIIStringEncoding error:&error];
Dit is mijn code nu maar ik krijg de token niet.
In NSLog blijft hij hangen op "Registering for push notifications..."
  #12  
Oud 28-03-11, 22:17
Dreissen Dreissen is offline
• iOS 7.1.1
• 5.1.1
• Besturingssysteem: Mac OS X
 
Geregistreerd: Feb 2009
Berichten: 429
Standaard

Edit:

Ik laat nu eerst alles in NSLog zetten, zodat ik kan kijken wat er gebeurd.
Ik heb nu dat ik deze link krijg:

"http://www.website.nl/push/reg_token.php?token=TOKEN Verwijderd
Alleen staan er veel % in de url is dat erg?

Laatst gewijzigd door Dreissen; 28-03-11 om 22:41.
  #13  
Oud 28-03-11, 22:18
Nikooos's schermafbeelding
Nikooos Nikooos is offline
• iOS 10.0.2
• 10.0.2
• Besturingssysteem: Mac OS X
 
Geregistreerd: Nov 2007
Locatie: Tilburg
Berichten: 3.172
Standaard

Dus heel de didRegisterForRemoteNotificationsWithDeviceToken wordt niet aangeroepen??

Wat voor code heb je nog meer in de appdelagate?

ik neem aan dat deze er wel tussen zit?
Code:
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)];
  #14  
Oud 28-03-11, 22:18
Nikooos's schermafbeelding
Nikooos Nikooos is offline
• iOS 10.0.2
• 10.0.2
• Besturingssysteem: Mac OS X
 
Geregistreerd: Nov 2007
Locatie: Tilburg
Berichten: 3.172
Standaard

En heb je deze er ook in zitten en geeft die misschien wel wat terug?

Code:
-(void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)err {
    NSString *str = [NSString stringWithFormat:@"Error: %@",err];
    NSLog(@"%@",str);
}
  #15  
Oud 28-03-11, 22:25
Dreissen Dreissen is offline
• iOS 7.1.1
• 5.1.1
• Besturingssysteem: Mac OS X
 
Geregistreerd: Feb 2009
Berichten: 429
Standaard

Code:
	NSString *urlString = [[NSString alloc] initWithFormat:@"http://www.website.nl/push/reg_token.php?token=%@", deviceToken];
    NSString *encodedString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
	NSString *token = [[[[[encodedString description] stringByReplacingOccurrencesOfString:@"<"withString:@""] 
                        stringByReplacingOccurrencesOfString:@">" withString:@""] 
					   stringByReplacingOccurrencesOfString:@"%" withString:@""] 
                       stringByReplacingOccurrencesOfString: @" " withString: @""];
	
	NSLog(@"url %@", token);
Nu werkt ie wel, zo.
Had bij NSLog nog encodedString staan en niet token.
Nu krijg ik een correcte link.

Maar het klopt nog niet kijk hier even na:

Code:
Mijn token even verwijderd :)
De URL is juist, maar de token erachter is niet juist op de een of andere manier.
Daaronder zie je hoe de token moet zijn dus als ik er nog geen url van heb gemaakt.

Laatst gewijzigd door Dreissen; 28-03-11 om 22:40.
  #16  
Oud 28-03-11, 22:39
Dreissen Dreissen is offline
• iOS 7.1.1
• 5.1.1
• Besturingssysteem: Mac OS X
 
Geregistreerd: Feb 2009
Berichten: 429
Standaard

Het werkt nu

Ik heb:

Code:
NSString *encodedString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
Eruit gelaten en alleen gefilterd op spatie, < > en %

Thanks, met jou hulp was het niet gelukt.
  #17  
Oud 28-03-11, 22:44
Nikooos's schermafbeelding
Nikooos Nikooos is offline
• iOS 10.0.2
• 10.0.2
• Besturingssysteem: Mac OS X
 
Geregistreerd: Nov 2007
Locatie: Tilburg
Berichten: 3.172
Standaard

Citaat:
Oorspronkelijk geplaatst door Dreissen Bekijk bericht
Het werkt nu

Ik heb:

Code:
NSString *encodedString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
Eruit gelaten en alleen gefilterd op spatie, < > en %

Thanks, met jou hulp was het niet gelukt.
Ah ok, nou mooi. Maar het was ZONDER mijn hulp ook vast een keer gelukt
  #18  
Oud 28-03-11, 22:59
Dreissen Dreissen is offline
• iOS 7.1.1
• 5.1.1
• Besturingssysteem: Mac OS X
 
Geregistreerd: Feb 2009
Berichten: 429
Standaard

Citaat:
Oorspronkelijk geplaatst door psychonikeo Bekijk bericht
Ah ok, nou mooi. Maar het was ZONDER mijn hulp ook vast een keer gelukt
Vast wel ja Maar toch bedankt!
Reageren



Er zijn 1 actieve gebruikers die momenteel deze discussie bekijken (0 leden en 1 gasten)

 
Discussietools
Weergave

Regels voor berichten
Je mag geen nieuwe discussies starten
Je mag niet reageren op berichten
Je mag geen bijlagen versturen
Je mag niet je berichten bewerken

BB code is Aan
Smileys zijn Aan
[IMG]-code is Aan
HTML-code is Uit
Trackbacks are Aan
Pingbacks are Aan
Refbacks are Uit



Alle tijden zijn GMT +2. Het is nu 10:32.