0

私は自分のアプリでAppleのViewControllerをかなり多く使用しています(MFMessageComposeViewControllerandなどABPeoplePickerNavigationController)。したがって、通知(ローカルまたはリモート通知)を受け取ったとき、AppleのView Controllerと対話(メッセージを送信)できないため、最もエレガントな方法でどのように対処すればよいでしょうか。

私の仮定は、ユーザーがアプリを積極的に使用している場合、つまり、ユーザーが自分のMFMessageComposeViewControllerしていることに邪魔されたり中断されたりしたくない場合です。しかし、それが私である場合、私が何かをしていると少し混乱し、(通知から)退屈な音が聞こえ、それ以上何も起こりませんでした。

それで、これを処理する合理的な方法は、ユーザーが自分の中にいるApple View Controllerでタスクを完了し、ユーザーに通知を表示できるようにするのでしょうか?

または、Apple View Controllerを閉じて通知を処理してから、ユーザーをApple View Controllerに戻しますか?

4

2 に答える 2

0

メッセージ コンポーザ上に AlertView や同様のモーダルを表示したくないだけだとすると、次のようになります。

  1. MFMessageComposeViewControllerDelegateaを作曲者に割り当てます。
  2. いつものように作曲家を表示します。
  3. 作曲者がプレイ中に受信した通知をキューに入れる/記憶する (通常のapplication:didReceive{Local|Remote}Notification:メッセージを介して)
  4. コンポーザーが閉じられると、デリゲートはそのmessageComposeViewController:didFinishWithResult:メッセージを受け取ります。
  5. 保存された/キューに入れられた通知で...何でも...します。

ユーザーが構成を終了するまで通知への応答を遅らせるか、中断するかは、よりトリッキーな状況です。それが比較的重要でない通知または頻繁な通知である場合は、キュー/遅延アプローチを採用する傾向があります。しかし、「重要な」通知については、ユーザーの邪魔をしても問題ありません。もちろん、それは問題を重要性を決定するものに移すだけです. そして、それはアプリに大きく依存しています。

于 2012-07-11T12:57:22.637 に答える
0

私はあなたが正確に正しいことを理解しているかどうかはよくわかりませんが、私にはあなたが次のようなことをしたいように聞こえます:

  • ユーザーがアプリでメッセージを作成していて、着信通知 (Facebook アプリからのプッシュ通知など) がある場合、MFMessageComposerViewController に何らかの処理をさせることで、アプリでこのイベントを何らかの方法で処理する必要があります。

この要求に対する回答として、次のことを述べたいと思います。

  1. このクラスを拡張すると、MFMessageComposerViewController にメッセージを送信できるはずです (つまり、MyMessageComposerController というクラスを作成し、標準コントローラーを拡張させて、そこで必要なことをすべて実行させます)。

  2. ただし、プッシュ通知については実際には何もできません。それは別のアプリからのものであり、この機能は iOS に組み込まれています。ユーザーが入力を終えたときにプッシュを後で到着させることはできません。プッシュ通知は常に到着し、ユーザーは入力を続けるか、通知を確認するかは、常に自分で決定してください。あなたができる唯一のことは、ユーザーが入力したすべてをアプリが保存して、ユーザーがアプリに戻ったときに入力を続けることができるようにすることです。

于 2012-07-11T08:42:38.303 に答える