【问题标题】:Cordova - Safari iPhone remote inspection disconnectsCordova - Safari iPhone 远程检查断开连接
【发布时间】:2017-12-29 02:03:41
【问题描述】:

我正在使用 Safari Web Inspector 远程调试我正在构建的 Cordova 应用程序。以前这就像一个魅力,但现在我遇到了一个问题。启动检查器后,几秒钟后,网络检查器似乎与设备断开连接。检查器仍处于打开状态,但检查器不会更新,并且当将鼠标悬停在检查器中时,设备上的元素将不再突出显示(这在最初的几秒钟内有效)。通过关闭检查器并再次启动它,我可以让它再次运行几秒钟。

我尝试使用 Chrome 和 ios_webkit_debug_proxy 进行调试,但不会断开连接。但是,这还有其他问题,使其成为不可行的解决方案。

我已尝试使用 Safari Technology Preview (11.0 R35) 以及当前稳定版本的 Safari (10.1.2),但两者都出现了问题。我也试过在我的电脑上切换闪电电缆和 USB 端口,这没有任何区别。

当检查员似乎断开连接时,我发现记录了以下错误(使用控制台应用程序):

RWIServiceLockdownConnection: Disconnecting because we failed to read a message from webinspectord. This could mean almost anything.

这似乎与 Cordova 有关,因为当我检查常规页面 Mobile Safari 页面时不会发生错误。

什么可能导致这种情况,我该如何解决?

【问题讨论】:

  • 你在你的 javascript 中使用 web worker 吗?如果是这样,这是一个已知的 Safari 问题。
  • @Joerg 不,我没有,所以这应该不是问题!
  • 我遇到了同样的问题。我的解决方案是我需要打开 Xcode。然后设备保持连接。也许对你有帮助。
  • 您是否有任何本机代码调用 .js,例如在计时器或其他任何东西上?在 chrome 上调试时看到奇怪的问题,这让我想起了。当原生调用调用 .js 时,无论调试器正在做什么都会被扔掉,然后事情就继续前进。
  • 这发生在我使用 iOS 11.3.1 的 iPhone 6 上。我在 iPhone 的控制台中看到:EXC_RESOURCE -> webinspectord[1927] exceeded mem limit: ActiveSoft 20 MB (non-fatal) ... 106227.678 memorystatus: killing_highwater_process pid 1927 [webinspectord] (highwater 14) - memorystatus_available_pages: 30853。不过不知道该怎么办。

标签: ios cordova safari


【解决方案1】:

尝试设置global hotkey:

  1. 转到System Preferences -> Keyboard -> Shortcuts -> App Shortcuts

  2. 添加一个热键,无论你想要什么键(例如Cmd + Alt + I)并将该热键匹配到您的cordova的主html文件(例如index.html)。

  3. 启动 Cordova 应用程序。

  4. 打开 Safari WI 并关闭它。

  5. 使用上面设置的快捷键重新启动 Safari WI。

  6. 关闭并重新打开 cordova 应用程序,Safari WI 应该会继续调试。

另外,如 cmets 中所述,请尝试保持 Xcode 处于打开状态。

【讨论】:

    猜你喜欢
    • 2015-09-23
    • 2012-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-22
    • 1970-01-01
    • 1970-01-01
    • 2014-11-21
    相关资源
    最近更新 更多