2012-04-10 41 views
5

Có thể nhận thông báo trên thiết bị di động bất cứ khi nào được tạo từ Máy chủ web hay không.Thông báo Đẩy Trong Web Di động

Điều này có thể đạt được bằng các ứng dụng gốc dành cho iPhone và Android. Nhưng yêu cầu của tôi là đạt được điều tương tự thông qua trang web trên điện thoại di động. Cũng có thể nhận thông báo ngay cả khi người dùng đã đóng trình duyệt web.

+0

Giờ đây, có thể sử dụng các API Web chuẩn được nhắm mục tiêu để triển khai trên tất cả các trình duyệt chính. Xem http://stackoverflow.com/a/32502379/441757 – sideshowbarker

Trả lời

2

Có thể đạt được, và bạn có 2 cách chính để đạt được điều này:

  1. WebSockets (HTML 5 bắt buộc)
  2. HTTP bỏ phiếu dài

Cả hai phương pháp đòi hỏi một số máy chủ lừa phần mềm, một ví dụ tốt là Socket.IO chạy trên nền tảng Node.JS.

Websockets yêu cầu trình duyệt HTML 5 (ví dụ: Chrome) để có thể không hoạt động đối với các yêu cầu của bạn.

Bỏ phiếu dài HTTP là hành động chấp nhận kết nối HTTP gửi đến trên máy chủ và sau đó ngủ cho đến khi bạn muốn đẩy dữ liệu đến máy khách. Node.JS có thể được thiết lập để làm điều này khá dễ dàng, hoặc bạn có thể sử dụng Socket.IO (một thư viện trên Node.JS) cung cấp thêm chức năng. Socket.IO cũng làm việc với Websockets nếu có thể - và rơi trở lại để bỏ phiếu dài nếu nó có.

Tóm lại, bạn sẽ cần một nền tảng máy chủ để thực hiện việc này - tôi khuyên bạn nên xem xét Socket.IO để bắt đầu. Bạn luôn có thể cuộn của riêng bạn một khi bạn có khái niệm chính đóng đinh. Tôi đã viết một trong ASP.net mà làm việc khá tốt, ví dụ.

+0

Thông báo đẩy sẽ đến nếu trình duyệt bị đóng? –

+0

không - là ứng dụng trong Javascript trong trình duyệt, không còn tồn tại nữa. Tôi nghĩ bạn cần tạo một ứng dụng di động để xử lý việc truyền tải tin nhắn của bạn - mà trên Android bạn có thể chạy như một dịch vụ. Sau đó, bạn có thể đặt HTML/JS di động của mình vào một ứng dụng này và hiển thị trực tiếp - hoặc bọc toàn bộ lô hàng trong Phonegap ... – justacodemonkey

1

Không thể nhận thông báo khi trang trong trình duyệt đóng cửa. Thông báo được kích hoạt bởi các ứng dụng chạy trong nền của os điện thoại thông minh.

0

Bạn cũng có thể sử dụng Sự kiện máy chủ được gửi (SSE) cho mục đích này. Android ICS hỗ trợ SSE, nếu tôi không sai. Các loại đá HTML5 (http://www.html5rocks.com/en/tutorials/eventsource/basics/) có một bài viết về vấn đề này và cũng chỉ ra một bản trình diễn (http://googlecodesamples.com/html5/sse/sse.html) .

Tuy nhiên, không có giải pháp nào trong số này (websockets, SSE) sẽ hữu ích nếu bạn muốn ứng dụng của mình hoạt động trên các thiết bị Android cũ hơn. Những giải pháp này không hữu ích nếu bạn muốn nhận được push khi ứng dụng của bạn không được khởi chạy. Giải pháp tốt nhất là xây dựng một số loại ứng dụng lai theo đề xuất của richbayliss. Tôi đoán bạn không thực sự cần phonegap cho việc này. Bạn có thể kích hoạt sự kiện bằng cách sử dụng loadDataWithBaseURL của WebView

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