2

iPhone アプリで暗号化された Web ページを使用し、これらの呼び出し (リンクをクリックするときなど) を webView:shouldStartLoadWithRequest: メソッドでインターセプトしてファイル パスを取得し、データを元の html 文字列に復号化してから、loadHTMLString: を実行します。 webView (もちろん、webView:shouldStartLoadWithRequest: で YES を返します)。

私たちが現在抱えている問題 (独自のバック/フォワード ステート マシンを実装する必要がある、最後の場所までスクロールするなどの他の問題を処理した後) は、webView が webViewDidFinishLoad: を呼び出した後に画像を読み込むように見えることです。 #anchor がある場合は下にスクロールする場所です (loadHTMLString を使用する場合に必要なように機能しないため、実装する必要があった別のこと: 復号化後)。

javascript 呼び出し ("window.scrollTo(0, document.getElementById('%@').offsetTop") を使用して下にスクロールすると、必要以上に上にスクロールしてしまうことがよくあります。画像をロードするのy 距離。

webView がページを完全にロードしてから #anchorsまたは以前の .y の場所にスクロールする方法に戻る方法はありますか?

これは説明するのが少し難しいですが、UIWebView がページをロード、キャッシュ、表示する方法の複雑な詳細に関係している可能性があります。これに関するいくつかの啓蒙と明確な考え方をいただければ幸いです。

4

1 に答える 1

0

アンカータグを使用して成功しました。例:

<a name='top'></a>
   ...
<a name='chap1'></a>
<a href='#top'>
   <h1>
      <img style='position:relative; top:2px; padding-right:5px;' src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHVQTFRFAgICwMDAAwMDpKSk9/f3+/v7cHBwZmZmZGRkERER/v7+p6ensrKy0tLSXl5eVlZWaGhoW1tbYGBglpaWxsbGvb29sbGxY2NjcXFxVVVVwcHBtLS0bW1tWlpacnJyDw8P/f39GhoaCwsLAQEBycnJ////AAAA7TukbQAAAGxJREFUeNpkz+kSgjAMBODYVi6VG1FUrjR5/0dE1ME27M9vMrMbIBEg9rLBPQUPSkOBCxElR7r9oaVzbTX1+IOXuQ6PZtZjiB+A52nig+W4yuF7oRS/ARnBqV3B27GDToK9iOlZIcB5TmQRYAB6fSF0/d87AgAAAABJRU5ErkJggg==' alt='arrow-up.png' />
      Chapter 1
   </h1>
</a>...

画像は Base64 でエンコードされ、新しく暗号化されていない に直接埋め込まれていますNSString*か?

于 2009-05-26T10:59:50.140 に答える