2010-06-29 23 views
38

Aquí está la descripción general.Agregar notificación de inserción de iPhone mediante el servidor ASP.NET

Necesito agregar notificaciones automáticas a una aplicación de iPhone. El lado del servidor es ASP.NET en C#.

Lo que me gustaría es un poco de coaching para trabajar en el proceso. Luego publicaré un código genérico para un proyecto de iPhone y una aplicación web ASP.NET junto con instrucciones paso a paso para que otros puedan aprender.

Aquí es mi entendimiento:

  1. solicite el certificado de APN y agregarlo al llavero. (No estoy seguro de cómo llevar esto a ASP.NET)
  2. Haga que los iPhones se registren con registerForRemoteNotificationWithTypes, envíe el valor a su servidor y almacénelo en un DB. Parece que este código para registrar debería ser fácil, pero no puedo encontrar una buena muestra. (No hay problema con enviar el valor al servidor ASP.NET.)
  3. Su aplicación de servidor crea una cadena de carga, envía la codificación JSON al servidor APNS para cada uno (o puede ser para grupos) de iPhones que usan su dispositivo token que se guardó en la base de datos.

Así que para desarrollar la adición, aquí están las piezas:

  • El código de registro iPhone

  • código que envía el código de registro iPhone al servidor y salva a DB (esto es fácil y Ya tengo estas piezas).

  • El código de contacto APNS del lado del servidor en C#. Esto también incluye cómo usar el certificado que se generó en el sitio web de desarrolladores de Apple.

  • Además, ¿la carga útil puede ser una pregunta de opción múltiple que puede responderse con el resultado enviado de vuelta al servidor?

Gracias de antemano por la ayuda. Convertiré esto en un tutorial para otros.

+2

Hola @RickLeinecker, ¿alguna vez pudiste crear código genérico para un proyecto de iPhone y una aplicación web ASP.NET junto con instrucciones paso a paso? Sería genial si puedes proporcionar eso para otros. El proyecto – Brabbeldas

Respuesta

10

Así que para la parte C# empuje theres un proyecto de código abierto que se puede utilizar, es fácil y tiene un código de ejemplo de cómo utilizar las bibliotecas con el fin de enviar notificaitons pulse un vínculo C# push notification project

Básicamente todo lo que debes hacer es obtener el certificado push de apple, luego colocarlo en tu proyecto y abrirlo en el proyecto C# (puedes ver el ejemplo y dónde hacerlo será obvio) ...

El iphone de bastante trivial y hay un montón de ejemplos por ahí

+0

ahora está en desuso. ¿cualquier otra sugerencia? – capdragon

+0

El mismo autor ahora está trabajando en PushSharp - https://github.com/Redth/PushSharp/ –

18

Esto me llevó para siempre a Figu Reanudar pero finalmente lo armé todo por las pistas menores que dejó la gente. Debe descargar el certificado para la APPID que registra en el portal del desarrollador. Ese certificado se debe convertir a un formato P12 para ser utilizado en Windows. Estos comandos en UNIX, finalmente lo hizo por mí:

Paso 1:

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

Dónde aps_developer_identity.CER es el archivo que se descarga desde el portal

Paso 2:

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

Dónde APSCertificates.p12 es un archivo de exportar desde el llavero Mac. Esto es crítico, debe importar el certificado del portal a llavero. Encuéntrelo en Mis certificados, abra el triángulo de revelación y resalte tanto el certificado como la clave privada, luego haga clic con el botón derecho y expórtelos. Déles una contraseña y guárdelos en un archivo p12.

Paso 3:

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

Se le pedirá un par de veces para la contraseña que utilizó para exportar el certificado y la clave privada en el llavero y le volverá a solicitar nuevas contraseñas para volver a cifrar todo, pero en al final tendrá el archivo aps_developer_identity.p12 que necesita mover a Windows, luego lo importará en las secciones de raíz personal y de confianza del administrador de certificados en MMC. Luego, en C# cuando usas MoonAPNS y llamas a la clase PushNotification, le das una ruta a ese certificado. También asegúrese de eliminar espacios del token del dispositivo.

+0

Poco tarde en el día, lo sé, pero gracias por esto. Me ayudó a cruzar la línea ... – Robert

3

Recomendaré una solución de inserción en línea. He usado https://parse.com/products/push - gratis y fácil de integrar con una API REST.

vieja respuesta:
lo recomiendo PushSharp.

Tuve algunos problemas con Moon-APNS e intenté cambiar a PushSharp y funcionó en 5 minutos. PushSharp incluso admite mensajes push de Android y Windows Phone en el mismo paquete. Y está disponible como un paquete NuGet.

+0

PushSharp es extremadamente fácil de trabajar y tiene un tutorial paso a paso para saltar a través de todos los aros de iOs. – raider33

+1

¡Y viene con toneladas de problemas extraños también! :) – Mrchief

+0

sí, PushSharp cuelga todo el tiempo – Toolkit

1

Sadly PushSharp es .NET 4.0 SOLAMENTE. el autor tampoco tiene planes para 3.5. Lo cual es un requisito para mí, ya que el proveedor del servidor solo permite 3.5. Así que tuve que ir con Moon-APNS, aún no lo he visto funcionar. Pero lo acabo de implementar hoy, y mañana mis amigos lo probarán. Moon-APNS también es .NET 4.0, pero es fácil configurarlo en 3.5. Solo descargue las librerías de dependencia en 3.5 e incluya esas y viola, está listo para comenzar.

Cuestiones relacionadas