【问题标题】:is there no way to catch "Received an unexpected URL from the web process:"有没有办法捕捉到“从网络进程收到了一个意外的 URL:”
【发布时间】:2018-09-13 10:44:58
【问题描述】:

我正在尝试使用 WKWebView 在 Swift 中使用 UIWebViews 重写 Objective-c 应用程序。 该应用程序显示大量本地内容。 虽然我可以毫无问题地在 WKWebView 中显示初始网页。当我单击指向更多本地内容的链接时,我收到以下错误:

从 Web 进程收到一个意外的 URL:“...”

内容使用非标准 href 来标识本地内容。使用 UIWebView shouldStartLoadWithRequest api,我能够拦截这个点击的链接并以我可以加载适当的本地内容的方式重写 href。

到目前为止,我无法在 WKWebView 中识别出任何可以让我完成同样事情的东西。 我正在使用此内容,而不是创建它,因此我无法更改 href 的格式。

我试过了:

decidePolicyFor navigationResponse 决定策略导航动作 didFail 导航 didFailProvisionalNavigation 导航 didStartProvisionalNavigation 导航

我尝试添加自定义 URLSchemeHandler... 没有任何东西可以让我截获链接。

而是在控制台中出现错误:

从 Web 进程收到了一个意外的 URL: 从 Web 进程接收到无效消息“WebPageProxy.DecidePolicyForNavigationAction”。 无法向服务 com.apple.WebKit.WebContent 发出信号:113:找不到指定的服务

它确实得到了decisionActionPolicyFor:

我错过了什么吗? 任何帮助将不胜感激!

摩根琼斯

【问题讨论】:

  • 你有没有得到任何地方?我遇到了同样的问题。 iOS 似乎无法访问我位于上述目录中的 index.html 文件。
  • 嗨@morgman 你有解决方案吗

标签: html ios swift href wkwebview


【解决方案1】:

有办法,使用这个功能

func webViewWebContentProcessDidTerminate(WKWebView){}

为了捕捉错误,您可以返回或重新加载 webview。

【讨论】:

  • 很好,我会试一试
  • 是的,我确实在我的项目中也遇到了这个错误。
【解决方案2】:

WKURLSchemeHandler 是 WKWebView 的方式。

然而,我们发现这样的代码:

"script type="text/javascript" src="xxx-local:.js"

通过 https 访问页面时无法识别我们的自定义方案。

样式表也是如此。 但仍然适用于图像。

你的链接是什么样的?

附:您无法拦截已知方案(例如 http)

【讨论】:

  • 不幸的是,我已经尝试过 WKURLSchemeHandler ......即使它导致 WKWebView 出错,它也会将 HREF 解释为“file://”,这是一个我无法覆盖的已知方案 >。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-02-28
  • 1970-01-01
  • 2016-01-23
  • 1970-01-01
  • 2013-04-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多