是否可以将所有浏览器控制台消息/错误通过管道传输到远程计算机?

And*_*man 2 javascript android webview cordova inappbrowser

我目前正在尝试调试 Cordova 应用程序的 InAppBrowser(在 Android 上)内发生的 javascript 错误。不幸的是,虽然我可以使用 Chrome 的远程调试/检查工具连接到手机上的 Web 视图,但控制台输出为空,尽管事实不应该如此。(无论是否遇到问题,都应该显示其他消息/警告。)

此时,我在尝试获取控制台/错误消息时遇到了困难。似乎什么都不起作用。任何人都可以想出一种方法来告诉 webview/javascript 将所有错误消息转发到远程地址吗?(显然,我永远不会发布具有这种配置的应用程序。)

Mar*_*eau 5

如果是 JavaScript 错误,您也许可以使用window.onerror. 这个想法是捕获错误然后将其发布到日志服务器。

window.onerror = function (msg, url, lineNo, columnNo, error) {
  alert(msg)
  // Log error to external server.
  // axios.post(url, JSON.stringify({msg, url, lineNo, columnNo, error}))
}

const test = undefined

test.error
Run Code Online (Sandbox Code Playgroud)

我在生产环境中执行此操作。这有助于捕获错误并更快地通知我问题。