2010-06-29 35 views
38

Đây là tổng quan.Thêm thông báo đẩy iPhone bằng máy chủ ASP.NET

Tôi cần thêm thông báo đẩy vào ứng dụng iPhone. Phía máy chủ là ASP.NET trong C#.

Điều tôi muốn là một số huấn luyện để làm việc thông qua quy trình. Sau đó tôi sẽ đăng mã chung cho một dự án iPhone và một ứng dụng web ASP.NET cùng với các hướng dẫn từng bước để những người khác có thể tìm hiểu.

Đây là hiểu biết của tôi:

  1. Áp dụng cho chứng APNS và thêm nó vào móc chìa khóa. (Không chắc chắn làm thế nào để mang lại điều này để ASP.NET)
  2. Có iPhones đăng ký với registerForRemoteNotificationWithTypes, gửi giá trị cho máy chủ của bạn, và lưu trữ trong một DB. Có vẻ như mã này để đăng ký nên được dễ dàng nhưng tôi không thể tìm thấy một mẫu tốt. (Không có vấn đề với việc gửi giá trị cho máy chủ ASP.NET.)
  3. Ứng dụng máy chủ của bạn tạo chuỗi tải trọng, mã hóa JSON, gửi đến máy chủ APNS cho mỗi (hoặc có thể là cho nhóm) của iPhone bằng thiết bị của họ mã thông báo đã được lưu vào DB.

Vì vậy, để phát triển việc bổ sung, sau đây là các mảnh:

  • Mã đăng ký iPhone

  • Mã sẽ gửi mã số đăng ký iPhone đến máy chủ và lưu vào DB (điều này rất dễ dàng và Tôi đã có những mảnh này).

  • Mã liên hệ APNS phía máy chủ trong C#. Điều này cũng bao gồm cách sử dụng chứng chỉ được tạo trên trang web của Nhà phát triển Apple.

  • Ngoài ra, tải trọng có thể là câu hỏi trắc nghiệm có thể được trả lời với kết quả được gửi lại cho máy chủ không?

Cảm ơn bạn đã trợ giúp. Tôi sẽ biến điều này thành một hướng dẫn cho người khác.

+2

Xin chào @RickLeinecker, bạn đã bao giờ có thể tạo mã chung cho một dự án iPhone và ứng dụng web ASP.NET cùng với hướng dẫn từng bước chưa? Sẽ tuyệt vời nếu bạn có thể cung cấp cho những người khác. Dự án – Brabbeldas

Trả lời

10

Vì vậy, đối với phần C# push theres một dự án mã nguồn mở mà bạn có thể sử dụng, dễ dàng của nó và có một số mẫu mã về cách sử dụng các thư viện để gửi notificaitons push ở đây là một liên kết C# push notification project

Về cơ bản tất cả bạn phải làm là có được giấy chứng nhận đẩy từ táo, sau đó thả nó trong dự án của bạn và mở nó trong dự án C# (bạn có thể xem ví dụ và nơi để làm điều đó sẽ là rõ ràng) ...

Phần iphone của khá tầm thường và có rất nhiều ví dụ ngoài kia

+0

hiện không được chấp nhận. bất cứ một đề nghị nào khác? – capdragon

+0

Cùng một tác giả hiện đang làm việc trên PushSharp - https://github.com/Redth/PushSharp/ –

18

Điều này đưa tôi mãi mãi đến figu nhưng tôi cuối cùng đã ghép tất cả lại với nhau từ những manh mối nhỏ mà mọi người bỏ đi. Bạn cần tải xuống chứng chỉ cho APPID mà bạn đăng ký trên cổng thông tin dành cho nhà phát triển. Chứng chỉ đó phải được chuyển đổi thành định dạng P12 để sử dụng trên Windows. Những lệnh trong UNIX cuối cùng đã làm nó cho tôi:

Bước 1:

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

đâu aps_developer_identity.cer là file bạn tải về từ cổng thông tin

Bước 2:

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

đâu APSCertificates.p12 là một tập tin bạn xuất từ ​​Mac Keychain. Điều này rất quan trọng, bạn phải nhập chứng chỉ từ cổng vào keychain. Tìm nó trong Chứng chỉ của tôi, mở tam giác tiết lộ và đánh dấu cả chứng chỉ và khóa riêng, sau đó nhấp chuột phải và xuất chúng. Cung cấp cho họ một mật khẩu và lưu chúng vào một tập tin p12.

Bước 3:

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

Bạn sẽ được nhắc nhở một vài lần cho mật khẩu mà bạn sử dụng để export chứng chỉ và khóa riêng trong Keychain và nhắc nhở một lần nữa cho các mật khẩu mới để tái mã hóa tất cả, nhưng trong cuối cùng bạn sẽ có tệp aps_developer_identity.p12 mà bạn cần chuyển đến cửa sổ, sau đó nhập nó vào cả phần Gốc Cá nhân và Tin cậy của trình quản lý chứng chỉ trong MMC. Sau đó, trong C# khi bạn sử dụng MoonAPNS và gọi lớp PushNotification bạn cung cấp cho nó một đường dẫn đến chứng chỉ đó. Ngoài ra, hãy đảm bảo xóa dấu cách khỏi mã thông báo của thiết bị.

+0

Vào cuối ngày, tôi biết, nhưng cảm ơn vì điều này. Giúp tôi qua đường dây ... – Robert

3

Tôi sẽ đề xuất giải pháp đẩy trực tuyến. Tôi đã sử dụng https://parse.com/products/push - miễn phí và dễ tích hợp với api REST.

Câu trả lời cũ:
Tôi muốn giới thiệu PushSharp.

Tôi gặp một số vấn đề với Moon-APNS và tôi đã cố gắng thay đổi thành PushSharp và nó hoạt động trong vòng 5 phút. PushSharp thậm chí còn hỗ trợ các tin nhắn push của Android và Windows Phone trong cùng một gói. Và nó có sẵn như là một gói NuGet.

+0

PushSharp cực kỳ dễ dàng để làm việc và có một hướng dẫn từng bước để nhảy qua tất cả các vòng lặp iOs. – raider33

+1

Và đi kèm với tấn các vấn đề lạ là tốt! :) – Mrchief

+0

yep, PushSharp luôn treo – Toolkit

1

Đáng buồn PushSharp là .NET 4.0 ONLY. tác giả cũng không có kế hoạch cho 3.5. Đó là một yêu cầu đối với tôi, vì nhà cung cấp máy chủ chỉ cho phép 3,5. Vì vậy, tôi đã phải đi với Moon-APNS, tôi vẫn chưa thấy nó làm việc tho. Nhưng tôi mới thực hiện nó ngày hôm nay, và ngày mai bạn bè của tôi sẽ kiểm tra nó. Moon-APNS là .NET 4.0, nhưng thật dễ dàng để cài đặt nó thành 3.5. Chỉ cần tải về các lib phụ thuộc trong 3.5 và bao gồm những người và viola bạn tốt để đi.

Các vấn đề liên quan