Dans mon application, j'implémente le service de notification push.
J'ai un serveur de fournisseur de contenu, qui contient certains produits.
J'ai généré le certificat de client SSL et l'ai attaché à mon profil d'approvisionnement de développement. Ce profil est également ajouté à mon application.
J'ai écrit le code dans les méthodes de délégation (guidé par les directives Apple pour la mise en œuvre de la notification push). Tous ensemble.
Maintenant, je veux tester mon application pour savoir si elle transmet la notification Push conformément à l'exigence. Toute idée sur comment puis-je tester cela m'aiderait beaucoup.
Devrais-je ajouter un nouveau produit au serveur du fournisseur de contenu pour tester cela?
Si oui, combien de temps APNS faudra-t-il pour envoyer la notification Push à mon appareil?
Très bon guide est affiché ici: Programmation Apple Push Notification Services
Et une application ici: App PushMeBaby Mac Os que vous pouvez télécharger et utiliser pour envoyer des notifications Push vers vos appareils depuis un Mac.
APNS enverra la notification Push à votre appareil dès que celui-ci sera disponible. Si je ne me trompe pas, votre appareil envoie une requête ping à APNS toutes les minutes.
J'ai essayé toutes les 3 des suggestions ci-dessus sans succès. Au cas où quelqu'un d'autre finirait ici à chercher une solution, j'ai trouvé ceci et cela fonctionne très bien:
Vous devriez essayer la branche de PushMeBaby, cela a fonctionné pour moi.
Si vous souhaitez prendre en charge l'authentification basée sur les certificats et les jetons avec APNS, vous pouvez essayer Notifications push
Qu'en est-il de curl
:
curl -d '{"aps":{"alert":"This is a test notification"}}' --cert YourCertificate.pem:YourPassword -H "apns-topic: com.example.yourapp" --http2 https://api.development.Push.Apple.com/3/device/YourDeviceToken
Vous avez d’abord besoin de curl
avec http2
support.
Et vous devez convertir votre certificat Push au format pem
en utilisant openssl
.
Essayez cette application en ligne, grâce à laquelle vous pouvez coller le jeton de votre périphérique et fournir le certificat. Vous pouvez ainsi envoyer une notification Push à tout périphérique et vous permettre de personnaliser également les données. http://pushmebaby.herokuapp.com
Vous pouvez utiliser le testeur APNS, c’est un très bon outil pour tester APNS à partir de Mac Machinelink pour télécharger this software .
1.Certificat APNS (fichier .cer) 2.Clé de périphérique du périphérique iOS de l'utilisateur
PushMeBaby est gelé lorsque je teste iOS10 dans Xcode8. Essayez NWPusher, https://github.com/noodlewerk/NWPusher . Un outil simple et convivial avec une interface graphique.
Si vous google, vous verrez un certain nombre de sites Web qui le font . J'utilise généralement/ https://www.apnstester.com et https://www.pushty.com
J'ai créé un petit script pour le faire
import json
import jwt
import time
from hyper import HTTPConnection
ALGORITHM = 'ES256'
# fill these items
APNS_KEY_ID = ''
TEAM_ID = ''
BUNDLE_ID = ''
# put path to p8 file
APNS_AUTH_KEY = ''
# put device token id (of the notification receiver)
REGISTRATION_ID = ''
# let's do the magic :)
f = open(APNS_AUTH_KEY)
secret = f.read()
token = jwt.encode(
{
'iss': TEAM_ID,
'iat': time.time()
},
secret,
algorithm= ALGORITHM,
headers={
'alg': ALGORITHM,
'kid': APNS_KEY_ID,
}
)
path = '/3/device/{0}'.format(REGISTRATION_ID)
equest_headers = {
'apns-expiration': '0',
'apns-priority': '10',
'apns-topic': BUNDLE_ID,
'authorization': 'bearer {0}'.format(token.decode('ascii'))
}
connection = HTTPConnection('api.development.Push.Apple.com:443')
# put the payload you need
payload_data = {
'aps': {
'content-available': '1',
},
}
payload = json.dumps(payload_data).encode('utf-8')
connection.request(
'POST',
path,
payload,
headers=request_headers
)
resp = connection.get_response()
print(resp.status)
print(resp.read())
https://Gist.github.com/IvanivOleg/7ba4072128b2c05a068a6826be68a3d3