2010-06-29 3 views
38

Voici la présentation.Ajouter une notification push iPhone à l'aide du serveur ASP.NET

Je dois ajouter une notification push à une application iPhone. Le côté serveur est ASP.NET dans C#.

Ce que je voudrais, c'est un encadrement pour travailler à travers le processus. Je vais ensuite publier du code générique pour un projet iPhone et une application Web ASP.NET, ainsi que des instructions étape par étape pour que d'autres personnes puissent apprendre.

Voici ma compréhension:

  1. Appliquer pour le certificat APNS et l'ajouter au trousseau. (Vous ne savez pas comment apporter cela à ASP.NET)
  2. Les iPhones s'inscrivent avec registerForRemoteNotificationWithTypes, envoient la valeur à votre serveur et stockent dans un DB. On dirait que ce code pour s'enregistrer devrait être facile mais je ne peux pas trouver un bon échantillon. (Aucun problème avec l'envoi de la valeur au serveur ASP.NET)
  3. Votre application serveur crée une chaîne de charge utile, codage JSON, envoie au serveur APNS pour chaque (ou peut-il s'agir de groupes) d'iPhones à l'aide de leur périphérique jeton qui a été enregistré dans la base de données.

Donc, pour développer l'ajout, voici les pièces:

  • Le code d'enregistrement iPhone

  • code

    qui envoie le code d'enregistrement iPhone au serveur et enregistre sur DB (ce qui est facile et J'ai déjà ces pièces).

  • Le code de contact APNS côté serveur dans C#. Cela inclut également l'utilisation du certificat généré sur le site Web Apple Developer.

  • De même, la charge utile peut-elle être une question à choix multiple pouvant être résolue avec le résultat renvoyé au serveur?

Merci d'avance pour l'aide. Je vais tourner dans un tutoriel pour les autres.

+2

Salut @RickLeinecker, avez-vous déjà été capable de créer du code générique pour un projet iPhone et une application web ASP.NET avec des instructions pas à pas? Ce serait génial si vous pouvez fournir cela pour les autres. – Brabbeldas

Répondre

10

Donc, pour la partie C# push theres un projet open source que vous pouvez utiliser, il est facile et a quelques exemples de code de la façon d'utiliser les bibliothèques afin d'envoyer pousser notificaitons ici est un lien C# push notification project

Fondamentalement tout vous devez faire est d'obtenir le certificat push d'Apple, puis déposez-le dans votre projet et l'ouvrir dans le projet C# (vous pouvez voir l'exemple et où le faire sera évident) ...

L'iphone partie de assez trivial et il y a des tonnes d'exemples là-bas

+0

projet maintenant obsolète. d'autres suggestions? – capdragon

+0

Le même auteur travaille maintenant sur PushSharp - https://github.com/Redth/PushSharp/ –

18

Cela m'a pris pour toujours à figu mais j'ai finalement reconstitué le tout à partir des indices mineurs laissés. Vous devez télécharger le certificat pour l'application APPID que vous enregistrez sur le portail des développeurs. Ce certificat doit être converti en format P12 pour être utilisé sous Windows. Ces commandes UNIX ont finalement fait pour moi:

Étape 1:

openssl x509 -in aps_developer_identity.cer -inform DER -out aps_developer_identity.pem -outform PEM} 

Où aps_developer_identity.cer est le fichier que vous téléchargez à partir du portail

Étape 2:

openssl pkcs12 -nocerts -out APSCertificates.pem -in APSCertificates.p12 

Où APSCertificates.p12 est un fichier que vous exportez du trousseau Mac. Ceci est critique, vous devez importer le certificat du portail dans le trousseau. Trouvez-le dans Mes certificats, ouvrez le triangle de divulgation et mettez en surbrillance le certificat et la clé privée, puis faites un clic droit et exportez-les. Donnez-leur un mot de passe et enregistrez-les dans un fichier p12.

Étape 3:

openssl pkcs12 -export -in aps_developer_identity.pem -out aps_developer_identity.p12 -inkey APSCertificates.pem 

Vous serez invité quelques fois le mot de passe que vous avez utilisé pour exporter le certificat et la clé privée dans le trousseau et vous êtes invité à nouveau pour les nouveaux mots de passe pour Rechiffrer tout, mais À la fin, vous aurez le fichier aps_developer_identity.p12 que vous devrez déplacer dans Windows, puis l'importer dans les sections Personal et Trusted Root du gestionnaire de certificats dans MMC. Puis, en C#, lorsque vous utilisez MoonAPNS et appelez la classe PushNotification, vous lui donnez un chemin vers ce certificat. Veillez également à supprimer les espaces du jeton de périphérique.

+0

Bit en fin de journée, je sais, mais je vous remercie pour cela. M'a aidé à franchir la ligne ... – Robert

3

Je recommanderai une solution push en ligne. J'ai utilisé https://parse.com/products/push - gratuit et facile à intégrer avec une API REST.

ancienne réponse:
Je recommande PushSharp.

J'ai eu quelques problèmes avec Moon-APNS et j'ai essayé de passer à PushSharp et cela a fonctionné dans les 5 minutes. PushSharp prend même en charge les messages push Android et Windows Phone dans le même paquet. Et il est disponible en tant que paquet NuGet.

+0

PushSharp est extrêmement facile à travailler et a un tutoriel étape par étape pour sauter à travers tous les cerceaux iOs. – raider33

+1

Et vient avec tonne de problèmes étranges aussi! :) – Mrchief

+0

oui, PushSharp est suspendu tout le temps – Toolkit

1

Malheureusement, PushSharp est .NET 4.0 UNIQUEMENT. l'auteur n'a pas non plus de plan pour 3.5. Ce qui est une exigence pour moi, car le fournisseur de serveur autorise seulement 3.5. Donc j'ai dû aller avec Moon-APNS, je n'ai pas encore vu ça fonctionner. Mais je l'ai juste implémenté aujourd'hui, et demain mes amis vont le tester. Moon-APNS est également .NET 4.0, mais il est facile de le régler sur 3.5. Il suffit de télécharger les libs de dépendance en 3.5 et d'inclure celles et alto que vous êtes prêt à utiliser.

Questions connexes