在Cordova应用程序中,在连接Safari的开发人员工具之前,任何对控制台。{log,warn,error等}的调用都不会出现在控制台中。这使得无法调试启动错误。我如何获得这些消息?
奖金问题:如何让WebView停止调试;连接Safari之前的行?
答案 0 :(得分:1)
我记得有一位朋友告诉我有关保持Safari网络检查程序运行的方法,无论应用程序是否在前台。 I found his article以下是详细信息 -
要做的第一件事就是设置全局热键 - 步骤:
Application Shortcuts
CMD + ALT + I
)index.html
或任何您的cordova主要密码
html文件是保持开放SWI的步骤
Application Shortcuts
除了上面的技术,您是否在下面安装了此插件并检查了Xcode中的日志?
cordova plugin add org.apache.cordova.console
你使用Ripple Emulator吗? Here is a great post on setting it up
答案 1 :(得分:1)
有一个很好的新工具,非常简单,可以解决您的问题。看一下GapDebug
here,它几乎是新的,但对我来说非常棒!
它完全符合您尝试使用Safari Remote Inspector实现的功能,特别是它在退出应用程序时不会关闭会话,因此会捕获所有控制台输出。
与Android结合使用也非常有趣,因为您可以获得一个相应调试两个平台的工具。
答案 2 :(得分:1)
这个简单的技巧很有用,只需在Safari中打开控制台并运行:
window.location.reload()
答案 3 :(得分:0)
我当然可以覆盖或包装console.log以将日志消息推送到数组window._log
。
(function(){
var _console = window.console;
window.console = {};
window.$log = {};
['log', 'warn', 'error', 'debug'].forEach(function(level){
window._log[level] = [];
window.console[level] = function(){
var args = Array.prototype.slice.apply(arguments);
window._log[level].push(arguments);
_console[level].apply(_console, arguments);
}
});
}());
答案 4 :(得分:0)
我放弃了,只是做了以下事情:
// At beggining
window.logs = [];
// Just push the logs
window.logs.push(err)
window.logs.push(string)
然后,您可以通过键入,登录来检查开发人员控制台日志屏幕中的日志。
答案 5 :(得分:0)