【问题标题】:UIWebView slow loading images--disturbs scrolling to anchorsUIWebView 加载图像缓慢--干扰滚动到锚点
【发布时间】:2009-05-19 13:58:43
【问题描述】:

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

我们目前遇到的问题(在解决了其他问题之后,比如必须实现我们自己的后退/前进状态机、负责滚动到最后一个位置等)是 webView 似乎在 它调用了 webViewDidFinishLoad:,这是我们向下滚动到 #anchor(如果有)的地方(我们必须实现的另一件事,因为当我们使用 loadHTMLString: 解密后它不能正常工作)。

当我们使用 javascript 调用 ("window.scrollTo(0, document.getElementById('%@').offsetTop") 向下滚动时,它通常会超出应有的位置;它看起来就像在加载图像之前计算了 .y 距离。

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

这有点难以解释,可能与 UIWebView 加载、缓存和呈现页面的方式中的复杂细节有关。对此的一些启示和一些清晰的思考将不胜感激。

【问题讨论】:

    标签: javascript iphone cocoa uiwebview


    【解决方案1】:

    我已经成功使用了锚标签,例如:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-17
      • 1970-01-01
      • 2015-12-16
      相关资源
      最近更新 更多