Push notifications
Iemand ervaring met het versturen van push berichten naar Android en iOS apps? Ik ben op zoek naar een systeem om gesegmenteerd mee te kunnen versturen, nu heb ik alleen de mogelijkheid om naar iedereen te versturen.
In dat geval weet ik dat de notificatie-app Pushover een API beschikbaar heeft.
Volgens mij is die service niet geschikt voor apps, maar voor websites en andere webservices.
Quote:
Pushover
Simple Notifications
Pushover makes it easy to get real-time notifications on your Android device, iPhone, iPad, and Desktop.
Simple Notifications
Pushover makes it easy to get real-time notifications on your Android device, iPhone, iPad, and Desktop.
Misschien kan je wat meer concreets vertellen over wat je precies wilt?
@aar ik ben een app aan het bouwen waarin de gebruiker een profiel aanmaakt. Vervolgens wil ik gebruikers op leeftijd, geslacht, whatever berichten kunnen sturen. Er moet dus een link kunnen worden gelegd tussen het profiel en de te versturen berichten.
Toevoeging op 26/07/2014 21:40:46:
iOS: https://github.com/manifestinteractive/easyapns
Amdroid: http://www.androidhive.info/2012/10/android-push-notifications-using-google-cloud-messaging-gcm-php-and-mysql/
Ziet er eenvoudig uit, of dat in de praktijk ook is, zal nog moeten blijken. Een interface-je zal ook niet misstaan.
Bouw je een native app voor de genoemde platformen, of een zogenaamde hybride app?
Phonegap. Wiezo?
Ja, maar dan moet je wel iets hebben om te verzenden, vandaar mijn post ;)
Quote:
Ja, maar dan moet je wel iets hebben om te verzenden
Hoe bedoel je? Wat wil jij bereiken? Wanneer wil je wat verzenden?
Lees even de rest zou ik zeggen.
Voorbeeldje:
gebruiker meld zich aan -> notification: hallo [naam], welkom terug
Kan me vergissen, maar deze plugin is alleen voor ontvangen, een plugin verstuurt sowieso niks.
Ik ging ervan uit dat je de berichten wilde ontvangen in de apps, waarbij ik ervan uitging dat je het verzenden al geregeld had.
Het verzenden van push notifications is op talloze manieren uit te voeren, via een commerciële oplossing of er zelf 1 maken.
Heb je bv al naar http://www.pushwoosh.com gekeken?
Nadeel van pushwoosh en dergelijke services zijn dat ze best wat geld kosten en weinig flexibel zijn. Ik zoek een manier waarbij ik letterlijk een query op m'n database kan draaien en vervolgens naar dat resultaat kan sturen. Bij bijv pushwoosh kun je tags gebruiken (waarvan ik het precieze gebruik overigens nog niet helder heb) waar je vervolgens naar kunt sturen. Voor 50 € pm heb je 3 tags en voor 250 € slechts 10, terwijl ik verschillende 10-tallen tags kan bedenken voor de app die ik ga bouwen. De kosten van een dergelijke service zijn dus al snel duurder dan de ontwikkeling van een eigen service waarbij je dus een stuk flexibeler bent.
Makkelijkste oplossing is via curl of stream verbinding te maken met apn, gcm, etc. en een json payload te verzenden.
Gewijzigd op 26/07/2014 23:46:16 door Local Dev
Heb je voorbeelden, buiten de genoemde projecten?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php
/**
* Voorbeeldje voor apns
*/
$host = '';
$port = '';
$cert = '';
$msg = 'Hello [name]';
$payload['aps'] = [
'alert' => $msg,
'badge' => 1,
'sound' => 'default'
];
$payload = json_encode($payload);
$streamContext = stream_context_create();
stream_context_set_option($streamContext, 'ssl', 'local_cert', $cert);
$apns = stream_socket_client(
'ssl://' . $host . ':' . $port,
$error,
$errorString,
2,
STREAM_CLIENT_CONNECT,
$streamContext
);
/**
* Haal alle iOS apperaten op uit bv een database.
*/
$deviceTokens = [];
foreach ($deviceTokens as $deviceToken) {
$apnsMessage = chr(0) . chr(0) . chr(32) . pack('H*', str_replace(' ', '', $deviceToken)) . chr(0) . chr(strlen($payload)) . $payload;
fwrite($apns, $apnsMessage);
}
socket_close($apns);
fclose($apns);
?>
/**
* Voorbeeldje voor apns
*/
$host = '';
$port = '';
$cert = '';
$msg = 'Hello [name]';
$payload['aps'] = [
'alert' => $msg,
'badge' => 1,
'sound' => 'default'
];
$payload = json_encode($payload);
$streamContext = stream_context_create();
stream_context_set_option($streamContext, 'ssl', 'local_cert', $cert);
$apns = stream_socket_client(
'ssl://' . $host . ':' . $port,
$error,
$errorString,
2,
STREAM_CLIENT_CONNECT,
$streamContext
);
/**
* Haal alle iOS apperaten op uit bv een database.
*/
$deviceTokens = [];
foreach ($deviceTokens as $deviceToken) {
$apnsMessage = chr(0) . chr(0) . chr(32) . pack('H*', str_replace(' ', '', $deviceToken)) . chr(0) . chr(strlen($payload)) . $payload;
fwrite($apns, $apnsMessage);
}
socket_close($apns);
fclose($apns);
?>
Of je kan gebruik maken van de volgende ZF2 Services:
Apns:
packagist: https://packagist.org/packages/zendframework/zendservice-apple-apns
code: https://github.com/zendframework/ZendService_Apple_Apns
docs: http://zf2.readthedocs.org/en/latest/modules/zendservice.apple.apns.html
Gcm:
packagist: https://packagist.org/packages/zendframework/zendservice-google-gcm
code: https://github.com/zendframework/ZendService_Google_Gcm
docs: http://zf2.readthedocs.org/en/latest/modules/zendservice.google.gcm.html
Dank u.