2012-01-27 29 views
40

Tôi muốn biết liệu có thể buộc cửa sổ bật lên "XXXXX muốn gửi thông báo đẩy cho bạn" từ trong ứng dụng sau khi từ chối ban đầu hay không. Các trường hợp sử dụng như sau:iOS - Yêu cầu bật thông báo đẩy sau khi từ chối ban đầu

  • Người dùng cài đặt các ứng dụng, nhận được cảnh báo về các thông báo đẩy, và giảm bởi vì họ không biết/tin tưởng ứng dụng được nêu ra.

  • Họ sử dụng các ứng dụng và chủ động yêu cầu trong ứng dụng được cảnh báo khi có chuyện xảy ra (nói ví dụ như một cái gì đó họ muốn mua là bán hết nên họ muốn được cảnh báo khi nó là trở lại trong kho).

  • Vì vậy, bây giờ người dùng đã yêu cầu ứng dụng thông báo cho họ về điều gì đó cụ thể nhưng đã tắt thông báo đẩy ở cấp hệ điều hành .

  • Vì vậy, nếu người dùng yêu cầu một cảnh báo, nhưng tôi phát hiện rằng họ đã từ chối cảnh báo trên chạy đầu tiên, tôi cần phải thông báo cho họ những điều này và họ đã biến thông báo đẩy về cho tỉnh táo để làm việc.

  • Lý tưởng nhất, tôi muốn buộc "XXXX muốn gửi cho bạn đẩy cảnh báo thông báo" tại thời điểm này (lần thứ hai kể từ khi họ cài đặt ứng dụng).

  • Tôi đoán kế hoạch b sẽ hiển thị cho họ thông báo của riêng họ cho biết họ phải đi vào cài đặt hệ thống của họ và bật lại theo cách thủ công trong để nhận thông báo họ muốn. Điều này là xa lý tưởng.

Mọi trợ giúp sẽ được đánh giá cao. Cảm ơn.

+0

Lưu ý - có một số nhận xét trên mạng rằng nếu bạn chỉ cần xóa ứng dụng, ** chờ 24 giờ **, và cài đặt lại, trên thực tế nó mang đến cho bạn cơ hội thứ hai. Hy vọng nó giúp. – Fattie

Trả lời

54

Bạn không thể làm cho iOS hiển thị lại cảnh báo. Dưới đây là cách tiếp cận tốt hơn:

  1. Giữ cờ trong NSUserDefaults cho biết bạn có nên đăng ký thông báo đẩy lúc khởi chạy hay không. Theo mặc định, cờ là sai.
  2. Khi bạn khởi chạy, hãy kiểm tra cờ. Nếu đó là sự thật, hãy đăng ký ngay lập tức. Nếu không, đừng đăng ký.
  3. Lần đầu tiên người dùng thực hiện điều gì đó có thể gây ra thông báo đẩy, đăng ký thông báo đẩy và đặt cờ trong NSUserDefaults.

Bằng cách này, khi người dùng nhận được cảnh báo thông báo đẩy, anh ấy có một số ý tưởng tại sao anh ấy nhận được thông báo và thực sự có thể nói có.

+0

Cảm ơn bạn đã trả lời nhanh. Tôi đã đi đến kết luận chính xác sau khi đọc câu trả lời trong bài đăng này http://stackoverflow.com/questions/2438400/reset-push-notification-settings-for-app (Tôi đã tìm kiếm nhiều lần trước khi đăng nhưng tất nhiên tìm thấy câu trả lời sau khi đăng). Tôi tự hỏi tại sao hầu như tất cả các ứng dụng đăng ký tại lần ra mắt đầu tiên? Nó có vẻ như một mô hình tốt hơn để đăng ký một khi người dùng đã trải nghiệm ứng dụng. – Joel

+7

Thật khó chịu khi không thể thực hiện mục đích thử nghiệm ... – jjxtra

+4

Thực tế, đăng ký khi khởi chạy lần đầu là một gợi ý được thực hiện trong tài liệu: "Ứng dụng phải đăng ký mỗi lần khởi chạy và cung cấp cho nhà cung cấp mã thông báo hiện tại./.. ./ Bằng cách yêu cầu mã thông báo thiết bị và chuyển nó đến nhà cung cấp mỗi khi ứng dụng của bạn khởi chạy, bạn sẽ giúp đảm bảo rằng nhà cung cấp có mã thông báo hiện tại cho thiết bị. bản sao lưu đã được tạo, anh ta phải khởi động ứng dụng ít nhất một lần để nó nhận lại thông báo. " –

4

Tôi cũng đang đối mặt với một loại vấn đề tương tự. Sau khi tìm kiếm rất nhiều, tôi quyết định làm những gì bạn gọi là Kế hoạch B. Tức là, cho người dùng thấy cảnh báo của chính tôi nói rằng cần phải bật tính năng thúc đẩy để có trải nghiệm tốt hơn hoặc điều gì đó tương tự.

Để kiểm tra xem loại push cần được kích hoạt, sử dụng phương pháp này:

- (UIRemoteNotificationType)enabledRemoteNotificationTypes 

UIApplication reference

Tôi nghĩ rằng đây là giải pháp làm sạch. Hãy xem xét một trường hợp sau khi chấp nhận yêu cầu lúc đầu, người dùng tắt push, điều này sẽ làm việc ngay cả trong kịch bản đó.

+0

Nó không được chấp nhận trên iOS8, hãy xem câu trả lời này: http://stackoverflow.com/a/25197833/616032 –

3

Cách tốt nhất để làm điều đó là (nếu bạn đang thực hiện trò chơi) hãy hỏi họ một câu hỏi ưu tiên (ví dụ: Bạn có muốn chúng tôi thông báo cho bạn khi cây trồng của bạn đã sẵn sàng để thu hoạch không? -Có -Không) và khi họ trả lời "có", hãy kích hoạt cửa sổ bật lên iOS gốc. sau đó bạn có thể xếp vào nhiều câu hỏi dọc theo kênh người dùng và cuối cùng bạn sẽ bắt được tất cả.

+1

Bạn làm gì sau khi người dùng chấp nhận câu hỏi ưu tiên nhưng đã từ chối hộp thoại hệ thống? – Zorayr

+0

Đây là một giải pháp tốt nhưng đối với một vấn đề khác. Không chính xác liên quan đến câu hỏi gốc. –

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