Подтвердить что ты не робот

Добавить iPhone push-уведомление с помощью сервера ASP.NET

Вот обзор.

Мне нужно добавить push-уведомление в приложение для iPhone. Серверная сторона - это ASP.NET в С#.

Я бы хотел, чтобы какой-то тренинг работал над этим процессом. Затем я опубликую общий код для проекта iPhone и веб-приложения ASP.NET вместе с пошаговыми инструкциями, чтобы другие могли узнать.

Вот мое понимание:

  • Подать заявку на сертификат APNS и добавить его в цепочку ключей. (Не уверен, как привести это в ASP.NET)
  • Зарегистрируйте iPhones с registerForRemoteNotificationWithTypes, отправьте это значение на ваш сервер и сохраните в БД. Кажется, что этот код для регистрации должен быть легким, но я не могу найти хороший образец. (Нет проблем с отправкой значения на сервер ASP.NET.)
  • Ваше серверное приложение создает строку полезной нагрузки, кодирует JSON, отправляет на сервер APNS для каждого (или может быть для групп) iPhones, используя маркер своего устройства, который был сохранен в БД.

Итак, чтобы разработать дополнение, вот фрагменты:

  • Код регистрации iPhone

  • Код, который отправляет код регистрации iPhone на сервер и сохраняет DB (это легко, и у меня уже есть эти части).

  • Код доступа APNS на стороне сервера в С#. Это также включает использование сертификата, созданного на веб-сайте Apple Developer.

  • Кроме того, может ли полезная нагрузка быть вопросом с множественным выбором, на который можно ответить с результатом, отправленным обратно на сервер?

Заранее благодарим за помощь. Я включу это в учебник для других.

4b9b3361

Ответ 1

Это заставило меня навсегда разобраться, но я, наконец, собрал все это вместе с незнакомыми людьми. Вам необходимо загрузить сертификат для APPID, который вы зарегистрировали на портале разработчиков. Этот сертификат должен быть преобразован в формат P12, который будет использоваться в Windows. Эти команды в UNIX, наконец, сделали это для меня:

Шаг 1:

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

Где aps_developer_identity.cer - это файл, который вы загружаете с портала

Шаг 2:

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

Где APSCertificates.p12 - это файл, который вы экспортируете из Mac Keychain. Это важно, вы должны импортировать сертификат из портала в цепочку ключей. Найдите его в разделе "Мои сертификаты", откройте треугольник раскрытия и выделите как сертификат, так и закрытый ключ, затем щелкните правой кнопкой мыши и экспортируйте их. Дайте им пароль и сохраните их в файле p12.

Шаг 3:

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

Вам будет предложено несколько раз ввести пароль, который вы использовали для экспорта сертификата и закрытого ключа в Keychain, и снова запросил новые пароли для повторного шифрования всего, но в конце вы получите файл aps_developer_identity.p12, который вам необходимо перейти к окнам, а затем импортировать его в секции Personal и Trusted Root менеджера сертификатов в MMC. Затем в С#, когда вы используете MoonAPNS и вызываете класс PushNotification, вы даете ему путь к этому сертификату. Также не забудьте удалить пробелы из токена устройства.

Ответ 2

Итак, для С# push part theres проект с открытым исходным кодом, который вы можете использовать, его легко и имеет некоторый пример кода, как использовать библиотеки для отправки push notificaitons здесь, это ссылка Проект уведомления о выпуске С#

В принципе, все, что вам нужно сделать, это получить сертификат push из apple, затем отбросить его в свой проект и открыть его в проекте С# (вы можете просмотреть пример и где это сделать будет очевидно)...

Часть iphone довольно тривиальная и есть множество примеров там

Ответ 3

Я порекомендую онлайн-решение. Я использовал https://parse.com/products/push - бесплатный и удобный для интеграции с REST api.

Старый ответ:
Я бы рекомендовал PushSharp.

У меня были некоторые проблемы с Moon-APNS, и я попытался перейти на PushSharp, и он работал в течение 5 минут. PushSharp даже поддерживает push-сообщения в Android и Windows Phone в одном пакете. И он доступен как пакет NuGet.

Ответ 4

Печально PushSharp - это только .NET 4.0. у автора также нет планов на 3.5. Это требование для меня, поскольку поставщик сервера разрешает только 3.5. Поэтому мне пришлось пойти с Moon-APNS, мне еще предстоит увидеть, как он работает. Но я только что реализовал его сегодня, и завтра мои друзья проведут его. Moon-APNS также является .NET 4.0, но легко установить его на 3.5. Просто загрузите библиотеки зависимостей в 3.5 и включите те и альт, которые вам хорошо пойти.