0

iPad编程,IOS6。有一个(UIWebView *)helpview 对象,它使用加载到捆绑的 html 文件中

[helpView loadHTMLString:htmlString baseURL:baseURL];

加载成功,在 html 文件中有一个 <a href="didTap://touchme">here</a>启用和处理超链接触摸。

一切正常,除了如果我随后启动 NSURLRequest 以获取外部网站然后返回到原始 html 文件,则 html 文件中的锚标记无法工作并且我收到此错误:

WebKit 在 webView:decidePolicyForNavigationAction:request:frame:decisionListener:delegate:setObjectForKey:key cannot be nil 中丢弃了一个未捕获的异常

没想到IOS编程使用了webkit,为什么会出现这个错误呢?以及如何恢复锚标签?

有趣的是,如果我释放并重新创建 UIWebView 对象而不是使用 IBOutlet 并始终保留它,这一切都可以正常工作。但这造成了 UIWebview 保留计数的其他问题,我无法弄清楚。

4

2 回答 2

0

您是否在应用程序的某处使用自定义 NSURLProtocol?它甚至可能没有在使用您的 UIWebView 的同一代码中注册,或者它可能在调用 loadRequest: 之后注册:但是,由于请求是异步加载的(我相信),它仍然可能会干扰。在您的代码中搜索[NSURLProtocol registerClass某处,禁用所有这些,看看是否能解决问题。如果是这样,那么该解决方案很可能会修复自定义协议代码中的异常。

于 2013-03-01T15:31:21.787 回答
0

我今天在 iOS 10.3 上看到了这个错误。和你一样 - 我使用 UIWebView,而不是 WKWebView。在我的情况下,问题是由加载的网址末尾的空格引起的。

于 2017-07-25T21:57:46.110 回答