IOS UIWebview webkit和decisionpolicyfornavigationaction错误

时间:2013-02-20 06:03:39

标签: ios iphone objective-c ipad webkit

iPad编程,IOS6。 有一个(UIWebView *) helpview对象,使用

加载到捆绑的html文件中
[helpView loadHTMLString:htmlString baseURL:baseURL];

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

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

  

WebKit在webView中丢弃了一个未捕获的异常:decisionPolicyForNavigationAction:request:frame:decisionListener:delegate:setObjectForKey:key不能为nil

我不认为IOS编程使用webkit,为什么会出现这个错误?以及如何恢复锚标签?

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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