javascript - 是否可以将所有浏览器控制台消息/错误通过管道传输到远程机器?
问题描述
我目前正在尝试调试 Cordova 应用程序的 InAppBrowser(在 Android 上)中发生的 javascript 错误。不幸的是,虽然我可以使用 chrome 的远程调试/检查工具连接到手机上的 web 视图,但控制台输出是空的,尽管它不应该是空的。(无论是否遇到问题,都应该显示杂项消息/警告。)
在这一点上,我在尝试获取控制台/错误消息时遇到了困难。似乎没有任何效果。谁能想到我可以告诉 webview/javascript 将所有错误消息转发到远程地址的方法?(显然,我永远不会发布具有这种配置的应用程序。)
解决方案
如果它是 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
我在我的生产环境中这样做。这有助于捕获错误并更快地通知我问题。
推荐阅读
- java - 创建自定义视图而不在 xml 中设置布局大小
- json - JSON HAL - 为链接指定不同的格式
- react-native - 如何在本机反应中更改底部选项卡导航器样式
- authentication - ASP.NET Core:Cookie 未经过身份验证。失败消息:取消保护票证失败
- reactjs - React Native - 如何防止重新渲染“静态”组件
- javascript - 我可以使用 Discord API 在消息请求中保存信息吗?
- haskell - 有人可以解释这个 Haskell 问题吗?
- android - 搜索/过滤分页列表
- php - 用于 Nginx 和 php-fpm 的 Kubernetes Docker 上的连接错误
- firefox - 语音合成 API 在 Manjaro 上的 Firefox 中不起作用