Swift

Swift:domainページのクリック

webページのクリックするときの種類を整理してみました。

本当にそうかどうかよくわかりません。

  1. domainページとそこからリンクが貼られた下位のwebページ
    domainページの例:https://raizan2ame.wordpress.com/
  2. 上記の定義が正しいとして、domainページでdomainページをクリック
  3. 下位ページをクリック
  4. 下位ページでdomaiページをクリック

URLを読み込む場合、URLを指定して読み込むケースと読み込んだwebページのURLをクリックして読み込むケースがあります。webページをすべて制御するには、いずれのURLも管理下におく必要があり、クリックされたURLも自分でクリックされたことを認識して読み込む必要があります。

この考え方が正しいなら、webページ読み込みにおいて永久ループが発生するケースがあり、それを防止する必要があります。

しかし、やってみた限りでは、didFinishLoadForFrameはframeを読み終わったということであり、全部のwebページの構成要素を読み終わったということではありません。frame名をdidStartProvisionalLoadForFrameで配列に入れてdidFinishLoadForFrameで消しこんでみたのですが、結果が正しいかどうか確信できませんでした。

他方、didFinishLoadForFrameもdidFinishLoadForFrameも暴走型のように思えました。つまり、startではon、finishではoffを繰り返し行い、結果的にoffで終わるようなロジックを組むしかありませんでした。そうなると、URLを指定して明示的に読み込んだという指示をONとしたとき、リンクがクリックされたとき、ON状態のままでありOFFにするタイミングがありません。

結局、苦肉の策というか、これならうまく行きそうだということで採用したアイデアは、didReceiveIconでOFFにする方法です。心配なのは、favicon読み込みがない場合、ここに来ないのではないかということです。

ダラダラ書きましたが、決め手に欠けています。workaroundになっているかどうか。