Swift

Swift:webViewでループする問題

まさにあの手この手です。正確には、あの手この手でやっているのですが、苦労しています。

多分、出口近くに来ているのですが、まだまだ最終確認が必要です。

didStartProvisionalLoadForFrame

  • about:blankでwebページが切り替わるのでこのタイミングで初期化する。こんな基本的な知識の欠如は怖いもの知らずとしか言いようがありません。
  • 前のwebページと次のwebページの間にabout:blankのwebページがあるとき、ここで初期化すれば、前のwebページの読み込み完了を認識しないで先に進んでから初期処理が可能。

このほかに覚えておくべきもの(変数)

  • 現在のURLはクリックか、URL指定による読み込みかを識別するフラグ
  • 同じURLがクリックされた回数(最悪ループしたときのworkaround)
  • 直前と同じwebページか、違うwebページかを識別するフラグ
  • frame.nameとmainFrameURLを覚えておく(配列)

やるべきもこと

  • 変数の初期化の場所と単純化を再チェック

Categories: Swift, 技術