Safari/iOS(iPhone 8、最新バージョン)の「戻る」機能は不安定です。トピック一覧からトピックへ移動した後、一覧の正しい位置に戻らないことがよくあります。自分のフォーラムではほぼ常に発生し、Metaでは時折機能しますが、より頻繁に機能しません。これは「戻る」ボタンをクリックした場合も、右にスワイプした場合も同様です。
気になったのですが、セーフモードでも動作しますか?
申し訳ありません、その点を付け加えるのを忘れていました。自分自身のフォーラムとメタの両方でセーフモードをテストしましたが、結果は同じでした。
iOS のハブアプリですか、それともネイティブのモバイル Safari ですか?メタのトピックリストから「戻る」ボタンや「戻る」スワイプを使って、私は問題の再現ができませんでした。
具体的な再現手順はありますか?
あ、待ってください。「戻る」スワイプは再現できますが、「戻る」ボタンは再現できません。「戻る」スワイプはトピックリストの実際のスクロール位置を記憶していないようですが、「戻る」ボタンは常に記憶しています。
ネイティブのモバイル Safari で発生しています。最初はトピックリストの更新に関連しているかと疑いましたが、そうではないようです。Meta では 100% の確率で発生します。
再現手順:
- Meta にログイン
- Meta のホームページをリロード(このステップは不要なようですが、トピックリストの更新問題を除外したかったため)
- 1 ページ下へスクロール
- トピックを選択
- 右にスワイプするか、戻るボタンをクリック
以下の試行もすべて同様の結果となりました:
- コンテンツブロックで Crystal 広告ブロッカーを無効化
- ログインせずにプライベートタブで Meta を開く
- iPhone SE でテスト
- Galaxy S6 の Chrome でテスト
確かに私も再現しました @eviltrout .. ここに回帰があったのでしょうか? @j.jaffeux?
これで修正されるはずです:
詳細はコミットメッセージをご覧ください。来週のマージ前にロビンの承認を待つ予定です。詳細なご報告ありがとうございます ![]()
マージされました。進捗をご報告ください。
このトピックは、最後の返信から3日後に自動的に閉鎖されました。新しい返信は許可されていません。
@bartv との議論の後、さらに調査したところ、確かに回帰が発生していることが分かりました。
原因はおそらく以下のコミットにあると思います:
このケースでは、scrollOnLoad が undefined になっています:
https://github.com/discourse/discourse/blob/master/app/assets/javascripts/discourse/components/topic-list.js.es6#L71
以下の修正を提案します:
来週、@markvanlan さんにごレビューいただけますでしょうか?
@bartv 2 番目の修正をマージしました。お時間のある際、結果をご報告ください。
余談ですが、このロジックをさらに改善できないか考えています。現在、ページをスクロールするたびにトピックの 1 つの位置を保存していますが、特にモバイル端末では、クリックしたトピックが戻ってきた際にビューポート内に表示されない場合があります(ごく近い場所にある場合でも)。
ここで Meta でテストしてみましたが、私の環境では動作しません。トピックから「戻る」をタップすると、トピック一覧の一番上に戻ってしまいます。
トピック一覧の正確な位置に戻る機能にも賛成です。
私の環境では動作します。お時間のある時に動画を作成してください。
投稿に追加しました。参考になれば幸いです。他に含める必要があるものがあれば、お知らせください。
動画が示しているのは予想通りです。「ページスクロール」、つまりさらにトピックが読み込まれなかったため、最後に閲覧したトピックの位置が更新されませんでした。
これは、私のサイドノートで改善を提案した点です。
ああ、確かに、新しいトピックが読み込まれるまで十分にスクロールすれば動作することを確認しました。その制限は予想外でした。ユーザーとしては、少し混乱を招くか、一貫性がないと感じます。
はい、僕もそれほど好きではありません。だから改善を提案したんです。ですが、私が修正した他の問題とは異なり、これは後退ではないと認識しています。
ああ、確かにこのコミットから別の回帰が発生していました。これで解決すると思います:
そして、私たちが話していた動作を取り戻せます!