開発中のアプリにバックグラウンドの目覚まし時計機能を追加しようとしています。
UILocalNotification
オブジェクトとその使用法を読み、音声が 30 秒に制限されていることを認識しています。
連続再生を模倣するために 30 秒間隔で複数の通知 (たとえば 5 つ) をスケジュールすることを考えていましたが、このアプローチの問題は、ユーザーが をヒットした場合Close
、後続の通知をキャンセルできないことです。
私の知る限りClose
、通知を完全に非表示にする (つまり、alertBody
プロパティをに設定するNil
) ことなく、ボタンを削除または非表示にすることは不可能です。
repeatInterval
そこで、このプロパティを使用して 30 秒ごとに通知がポップアップするようにしようと考えましたが、間隔を 1 分または 1 秒にしか設定できず、その間には何も設定できないようです。
この機能は、ユーザーがアラーム オーディオの音楽とビープ音のどちらかを選択できるようにすることを目的としています。ビープ音を鳴らす方法を見つけたようです-1秒に設定しrepeatInterval
、1秒分のビープ音を作成し(きれいに繰り返すにはタイミングを合わせる必要があります)、それを通知音として使用します。
ただし、音楽に関しては、このアプローチでは 30 秒のオーディオを再生し、その後に 30 秒のギャップがあり、その後に 30 秒のオーディオが続くというように制限されます。
他の投稿やリソースを読んだことから、ここには簡単な解決策がないことはわかっています。内蔵の目覚まし時計と同じ機能にアクセスできるサードパーティのアプリはありません。誰かが回避策を見つけたか、本当に賢い何かを考えていることを願っています。
repeatInterval
更新:アプリを起動しないと繰り返しをキャンセルできないため、この場合は役に立たないことがわかりました。
当分の間、通知自体をアラームとして使用しないことに決めましたが、機能をリマインダーに変更しました (通知の目的に沿って)。
ユーザーフレンドリーで信頼性の高いアラーム機能をアプリに実装する方法を思いついたら、この投稿を更新します。