Swift part13 (412レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
189: デフォルトの名無しさん (ワッチョイ 4592-6dX5) [] 2022/01/07(金) 16:16:07.99 ID:DAmLcD300(1/4) AAS
バックグラウンドに移行してある程度長い時間が
経過した後にフォアグラウンド復帰したら
アプリの最初の画面に自動で戻されてしまいます
これはどのアプリでもそういう仕様になってると
思うんですがひとつ問題がありまして

チャットアプリを作ってるのですが
OSによって強制的に部屋のビューから
最初のビューに戻されたことになるので
退室処理が正しく行われないです
なので他のユーザーから見ると
既にいないユーザーがまだ部屋にいるかのように
見えてしまいます

OSによる強制退室が発生する直前に
アプリ側で正しい退室処理をしたいのですが
OSの強制イベントを検知して
アプリで終了処理をバックグラウンドで
走らせることは可能でしょうか?

可能ならメソッドやdelegate等の
キーワードだけでも教えてもらえると嬉しいです
192: デフォルトの名無しさん (ワッチョイ 4592-6dX5) [] 2022/01/07(金) 17:53:56.91 ID:DAmLcD300(2/4) AAS
フォアグラウンドとバックグラウンドの
移行タイミングのdelegateは認識しているのですが
何が問題かと言いますと

?バックグラウンドに行く時に退室処理はしたくない
→例えばブラウザを見に行ったり、別のアプリを一瞬見に行くたびに退室処理されると不便

?バックグラウンドに行ったっきりになる可能がある
→10日間くらいバックグラウンドにしたままになる
可能性に対して、実質はOSの処理によって
フォアグラウンドに戻っても部屋に
戻れる可能性がないのに退室処理がされないままになる
これは他のユーザーからの見え方としてまずい

つまりバックグラウンドに何分いると
セッションが切れるのかが分かりませんが
そのタイミングで退室処理を行いたいということです
それ以外のタイミングで退室処理はしたくない
というのが理想です…

バックグラウンドに入ったとか
フォアグラウンドに戻ってきたとかの
イベントを拾っても↑は実現できないので
困っていたという感じです

分かりにくくてすみません…
193: デフォルトの名無しさん (ワッチョイ 4592-6dX5) [] 2022/01/07(金) 17:58:45.95 ID:DAmLcD300(3/4) AAS
>>191
191(1): デフォルトの名無しさん (アウアウウー Saa5-5U0L) [sage] 2022/01/07(金) 17:50:51.98 ID:WSZPeEUFa(1) AAS
一定間隔で鯖にアクセスさせることにして
アクセスなければ鯖側で退出処理
なるほど

例えばバックグラウンドに入ったら
ハローパケットの送信を停止して
ハローパケットが5分間届かなかったら
退室処理が行われる

って処理を実装する的な感じですかね
なんか行けそうな気もしますが
OSの強制巻き戻しが発生するタイミング以外では
なるべく部屋に残留させたいので
強制ビュー巻き戻しのタイミングは
知りたいところではありますが
それが分からなければ最悪その方法で
実装してみます!

ありがとうございます
195: デフォルトの名無しさん (ワッチョイ 4592-6dX5) [] 2022/01/07(金) 18:25:48.71 ID:DAmLcD300(4/4) AAS
>>194
194(1): デフォルトの名無しさん (ブーイモ MM26-zmFY) [sage] 2022/01/07(金) 18:21:36.12 ID:v3Y25r6wM(1) AAS
フォアグラウンドの状態から通信切れてそのままだとどうするの?
機内モードとかにして通信が切れた時は
アプリで検知できるので仮退室モードにしていて
メッセージ送信ボタンを押せなくしてます

急にタスクキルしてアプリ終了したときは
cloudFunctionのonDisconnectが働いて
退室処理がされるようになってます
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.024s