2012-02-25 29 views
20

Tôi phải tạo ứng dụng đồng hồ báo thức cho iPhone trong đó người dùng có thể đặt thời gian và âm báo thức. Khi làm như vậy, tôi đã sử dụng UILocalNotification để tắt báo thức.Ứng dụng đồng hồ báo thức trong iOS

Hiện tại, trong UILocalNotification, trước tiên chúng tôi nhận được Cảnh báo thông báo với tùy chọn "Đóng" và "Chế độ xem". Nếu người dùng chạm vào "Chế độ xem", thì đại biểu của tôi sẽ nhận được thông báo application:didReceiveLocalNotification: và âm báo thức phát.

Nhưng trong ứng dụng báo thức có hệ thống, chúng tôi không thấy cảnh báo thông báo; nó chỉ phát trực tiếp âm thanh báo động. Làm cách nào để ứng dụng của tôi có thể sử dụng hành vi này?

Trả lời

3

Tôi khá chắc chắn bạn có thể có âm thanh thông báo địa phương tùy chỉnh của riêng mình.

Ví dụ mã localNotif.soundName = @"alarmsound.caf";

Note âm thanh thông báo địa phương sẽ phải chỉ có 30 giây hoặc ít hơn để được chơi. Bạn có thể nhận được thêm info here.

5

Hành vi cảnh báo này không khả dụng cho ứng dụng iOS. Bạn có khả năng tạo thông báo cục bộ và thêm âm thanh cho họ, nhưng độ dài âm thanh bị giới hạn. Bạn không thể phát âm thanh liên tục như trên báo thức cài sẵn.

Một tùy chọn là lặp lại các cảnh báo. Vì vậy, ứng dụng của bạn sẽ gửi cảnh báo, đợi một thời gian rồi gửi một thông báo khác. Bạn lặp lại một số lần được chỉ định hoặc cho đến khi người dùng tương tác với ứng dụng của bạn. Tôi không nghĩ rằng điều này sẽ cung cấp trải nghiệm người dùng tuyệt vời, vì vậy tôi không khuyên bạn nên sử dụng nó.

+0

Xin chào, Tôi tình cờ gặp điều này, trong khi đang tìm kiếm thứ khác. Chúng tôi có thể chỉ định khoảng thời gian tùy chỉnh để lặp lại các cảnh báo này khi ứng dụng đã chuyển sang chế độ nền – heyjii

33

Tôi đồng ý với David. Ứng dụng báo thức tích hợp iOS được xử lý đặc biệt từ Apple để phát âm> 30 giây trong khi ở chế độ nền. Dường như sử dụng một số API riêng tư để làm cho âm thanh phát ra trong một thời gian lâu hơn ngay cả khi nó ở chế độ nền hoặc đóng. Tính năng này không khả dụng cho các ứng dụng khác được xây dựng bên ngoài Apple, vì vậy, thậm chí không cố gắng cạnh tranh với ứng dụng này. Nếu bạn mua tất cả các ứng dụng Đồng hồ báo thức trong App Store (hay được Apple phê chuẩn) và thử từng cái một, bạn sẽ thấy rằng chúng thiếu đằng sau ứng dụng báo thức tích hợp trong chức năng quan trọng nhất của báo thức: tức là "Sounding trong một thời gian dài, trong bất kỳ trạng thái ứng dụng nào đang ở (hoạt động, nền hoặc đóng) "

Đặt cược tốt nhất của bạn để mô phỏng báo thức nền là sử dụng UILocalNotification trong 30 giây. Nếu bạn thực sự muốn đánh thức chiếc giường ngủ nặng của mình, hãy lên kế hoạch để kích hoạt năm trong số những thông báo này cách nhau sáu mươi giây hoặc tương tự như vậy, với hy vọng họ sẽ thức dậy trước khi thông báo thứ 5 kết thúc.

Lưu ý rằng với phương pháp này, người dùng của bạn bỏ qua báo thức sẽ nhận được 5 cửa sổ bật lên trên màn hình của họ khi họ thức dậy (ít hơn nếu họ thức dậy trong một cửa sổ bật báo thức) buổi sáng đóng cửa các quảng cáo đó - không phải là trải nghiệm người dùng lớn nhất.

Kết luận: Ứng dụng Đồng hồ báo thức chỉ tốt cho sử dụng tiền cảnh. Ứng dụng Báo thức tốt nhất hiện có sẽ hoạt động ở bất kỳ trạng thái nào là ứng dụng Đồng hồ tích hợp được Apple tạo.

+6

Tôi rất buồn khi tìm thấy điều này. –

+1

[iHome + Sleep] (https://itunes.apple.com/de/app/ihome+sleep-alarm-clock-app/id346249053?mt=8) được sử dụng để có điều này, nhưng trong 2.9 họ đã xóa nó bằng bình luận "thay đổi để đáp ứng iOS tuân thủ" ... Vì vậy, có vẻ như rằng trong khi nó là về mặt kỹ thuật có thể, Apple không muốn các ứng dụng sử dụng tính năng này. Xấu hổ. Tôi sẽ ở lại với 2,8 –

+0

Tôi rất buồn về điều này. Saddest bao giờ hết. –

0

Nếu bạn bật chế độ nền "Âm thanh, AirPlay và Hình ảnh trong ảnh" và "Thông báo từ xa", bạn có thể sử dụng thông báo đẩy im lặng để đánh thức thiết bị và sau đó bắt đầu phát âm thanh và miễn là bạn ' phát lại âm thanh, bạn sẽ không bị giới hạn trong 30 giây để trả lời thông báo như bình thường. Điều này sẽ không hoạt động nếu ứng dụng đã bị người dùng giết theo cách thủ công, nhưng nếu người dùng làm điều đó, bạn có thể gửi thông báo địa phương yêu cầu họ mở lại ứng dụng.

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