我们在iPhone应用程序中使用加密的网页,并在webView:shouldStartLoadWithRequest:方法中拦截这些调用(例如,单击链接时)以获取文件路径,将数据解密为原始html字符串,然后在webView(显然在webView:shouldStartLoadWithRequest:中返回YES)。

我们目前遇到的问题(在解决了其他问题(如必须实现自己的后退/前进状态机,需要滚动到最后一个位置等)之后)似乎是webView在调用webViewDidFinishLoad:之后加载了图像。是我们向下滚动到#anchor的地方(如果需要的话,我们必须实现另一件事,因为它在解密后使用loadHTMLString:时无法正常工作)。

当我们使用JavaScript调用(“ window.scrollTo(0,document.getElementById('%@')。offsetTop”)向下滚动时,它通常会比预期的远得多;看起来就像计算了。加载图像之前的y距离。

有没有办法回到webView完全加载页面的方式,然后滚动到#anchors或先前的.y位置?

解释起来有些棘手,并且可能与UIWebView加载,缓存和呈现页面的方式中的复杂细节有关。对此有一些启发和清晰思考将不胜感激。

最佳答案

我成功使用了定位标记,例如:

<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*中?

关于javascript - UIWebView缓慢加载图像-干扰滚动到 anchor ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/882952/

10-11 22:40
查看更多