Swift

Swift:URLとTitleを取り込むタイミング

webページのURLとTitleをどのタイミングで取り出せるか?

候補は次の2箇所。

  • func webView(sender: WebView!, didStartProvisionalLoadForFrame frame: WebFrame!)  {
  • func webView(sender:WebView, didFinishLoadForFrame frame:WebFrame) {

最初、webページを読み終わったあとだろうと思い、そこにしていました。しかし、読み込む間にほかのボタンが押されてしまうと、読み込み途中の表示のままになる可能性があり、開始時にURLとタイトルを拾えるならそこの方がいいと思うようになりました。

調べたら、開始時にURLもTitleも拾えます。

もう一点留意すべきは次のことです。

  • didStartProvisionalLoadForFrameはひとつのURLを指示して読み込み終了までの間に何回も呼ばれる。
  • didFinishLoadForFrameは最後に1回だけ呼ばれる。
  • URL読み込みが終わったあとに(自分で書いたコードを抜けたあとに)、さらにdidStartProvisionalLoadForFrameが呼び出される可能性があります(実際に呼ばれています)。しかもそのあとにdidFinishLoadForFrameは呼ばれません。これは回避するようにしないとアプリの不具合につながるかもしれないので、調査中。
  • これは、javaがonのときのrefresh?

Categories: Swift, 技術