点击链接后,UIWebView停止触发委托方法

时间:2017-02-13 23:35:04

标签: ios swift ipad uiwebview

我的应用程序中有一个UIWebView,用于显示本地保存的HTML内容。该内容包括其唯一目的是指示应用程序显示不同文档的链接。这些链接使用自定义URL协议:“jcom://”,URL是一个JSON字符串,告诉应用程序如何查找链接的文档。

您可能会质疑为什么我们不仅仅使用http网址来链接我们的文档。对此的答案与手头的问题无关,而且细节也无法改变,也因为原因。

点击其中一个链接后,我们会使用UIWebViewDelegate方法webView(_ webView: UIWebView, shouldStartLoadWith request: URLRequest, navigationType: UIWebViewNavigationType) -> Bool。然后我们可以解码JSON有效负载并加载正确的页面。

当链接未引用有效文档时,会出现问题。在这种情况下,我们希望用户能够在同一页面上点击不同的链接。但是在处理了一个jcom://链接后,UIWebView会在链接时停止向我们发送委托方法。

我尝试为该方案实现URLProtocol处理程序,但所有这一切都是在链接被点击时阻止UIWebView生成加载失败。一旦点击了单个链接,也不会调用它的方法。

有谁知道如何将网页视图恢复到再次允许点击链接的状态?谢谢!

1 个答案:

答案 0 :(得分:0)

我最终屈服于必然性,只是重新加载页面。这不是一个理想的解决方案,但在这种特殊情况下是可行的。