首页 > 解决方案 > 是否可以将所有浏览器控制台消息/错误通过管道传输到远程机器?

问题描述

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

在这一点上,我在尝试获取控制台/错误消息时遇到了困难。似乎没有任何效果。谁能想到我可以告诉 webview/javascript 将所有错误消息转发到远程地址的方法?(显然,我永远不会发布具有这种配置的应用程序。)

标签: javascriptandroidcordovawebviewinappbrowser

解决方案


如果它是 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

我在我的生产环境中这样做。这有助于捕获错误并更快地通知我问题。


推荐阅读