Agregar notificación de inserción de iPhone utilizando el servidor ASP.NET

Aquí está el resumen.

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 algún entrenamiento para trabajar a través del 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í está mi entendimiento:

  1. Solicite el certificado APNS y agréguelo al llavero. (No estoy seguro de cómo llevar esto a ASP.NET)
  2. Haga que los iPhones se registren con registerForRemoteNotificationWithTypes, envíen el valor a su servidor y lo almacenen en una base de datos. Parece que este código para registrarse debería ser fácil, pero no puedo encontrar una buena muestra. (No hay problema con el envío del valor al servidor ASP.NET).
  3. La aplicación de su servidor crea una cadena de carga útil, hace encoding JSON, envía al servidor APNS para cada (o puede ser para grupos) de iPhones usando su token de dispositivo 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 del iPhone.

  • Código que envía el código de registro del iPhone al servidor y lo guarda en la base de datos (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 Apple Developer.

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

Gracias de antemano por la ayuda. Voy a convertir esto en un tutorial para otros.

Esto me tomó una eternidad para darme cuenta, pero finalmente lo junté todo a partir de las pistas menores que dejó la gente. Debe descargar el certificado para el APPID que se registra en el portal para desarrolladores. Ese certificado se debe convertir a un formato P12 para ser utilizado en Windows. Estos comandos en UNIX finalmente lo hicieron por mí:

Paso 1:

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

Donde aps_developer_identity.cer es el archivo que descarga desde el portal

Paso 2:

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

Donde APSCertificates.p12 es un archivo que exporta desde el Mac Keychain. Esto es crítico, debe importar el certificado desde el portal a keychain. Encuéntrelo en Mis certificados, abra el triángulo de divulgación y resalte tanto el certificado como la clave privada, luego haga clic con el botón derecho y expórtelos. Dales una contraseña y guárdalas 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á algunas veces la contraseña que usó para exportar el certificado y la clave privada en Keychain y se le solicitarán nuevamente las nuevas contraseñas para volver a cifrarlo todo, pero al final tendrá el archivo aps_developer_identity.p12 que necesita muévase a Windows, luego impórtelo en las secciones Personal y Trusted Root del administrador de certificados en MMC. Luego, en C # cuando usa MoonAPNS y llama a la clase PushNotification, le asigna una ruta a ese certificado. También asegúrese de eliminar los espacios del token del dispositivo.

Por lo tanto, para la parte de inserción de C # hay un proyecto de código abierto que puede usar, es fácil y tiene un código de ejemplo de cómo usar las bibliotecas para enviar notificaciones de inserción. Aquí hay un proyecto de notificación de inserción de C #.

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

La parte del iPhone es bastante trivial y hay muchos ejemplos por ahí.

Te recomendaré una solución push online. Después de que parse.com se haya cerrado, he usado https://onesignal.com/ – gratis y fácil de integrar con una API REST.

Respuesta antigua:
He usado https://parse.com/products/push – gratis y fácil de integrar con una API REST.

Respuesta antigua:
Yo recomendaría 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.

Lamentablemente PushSharp es .NET 4.0 SOLAMENTE. El autor tampoco tiene planes para 3.5. Lo que es un requisito para mí, ya que el proveedor del servidor solo permite 3.5. Así que tuve que ir con Moon-APNS, todavía tengo que ver cómo funciona. 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. Simplemente descargue las librerías de dependencia en 3.5 e incluya esas y viola a las que puede ir.