我们在iPhone应用程序中使用加密网页,并在webView中拦截这些调用(例如,当点击链接时):shouldStartLoadWithRequest:获取文件路径的方法,将数据解密为原始html字符串,然后执行loadHTMLString :在webView上(显然在webView中返回YES:shouldStartLoadWithRequest:,显然)。
我们目前遇到的问题(在采取其他问题,例如必须实现我们自己的后退/前进状态机,负责滚动到最后一个位置等)之后,似乎webView加载了之后的图像< / em>它调用了webViewDidFinishLoad:,这是我们向下滚动到#anchor的地方(如果有的话我们必须实现的另一件事,因为它在我们使用loadHTMLString时无法正常工作:解密后)。
当我们使用javascript调用向下滚动时(“window.scrollTo(0,document.getElementById('%@')。offsetTop”)它通常会比应该向上滚动得更远;它看起来就像它在加载图像之前计算.y距离。
有没有办法回到webView完全加载页面的方式,然后滚动到#anchors或之前的.y位置?
解释起来有点棘手,可能与UIWebView加载,缓存和显示页面的方式有关。一些启示和一些明确的思考将非常感激。
答案 0 :(得分: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*
?