如何从移动设备上的移动设备获取console.log输出?

时间:2017-11-01 21:48:00

标签: javascript android google-chrome mobile

我从移动设备上做了很多开发工作。有没有办法让js访问移动浏览器中 中的console.log输出?

3 个答案:

答案 0 :(得分:5)

目前,最好的方法是“挂钩”本机控制台并将输出显示为HTML,同时仍然允许输出转到本机控制台。

您可以非常轻松地实施自己的版本....

// Reference to an output container, use 'pre' styling for JSON output
var output = document.createElement('pre');
document.body.appendChild(output);

// Reference to native method(s)
var oldLog = console.log;

console.log = function( ...items ) {

    // Call native method first
    oldLog.apply(this,items);

    // Use JSON to transform objects, all others display normally
    items.forEach( (item,i)=>{
        items[i] = (typeof item === 'object' ? JSON.stringify(item,null,4) : item);
    });
    output.innerHTML += items.join(' ') + '<br />';

};

// You could even allow Javascript input...
function consoleInput( data ) {
    // Print it to console as typed
    console.log( data + '<br />' );
    try {
        console.log( eval( data ) );
    } catch (e) {
        console.log( e.stack );
    }
}

....但不是重新发明轮子,有一些你可能有兴趣尝试的项目。

我个人正在使用hnlDesign's mobileConsole并对此非常满意。这很简单,也是您想要和期望的。

我最近意识到Eruda但是没有机会测试它,除了玩他们的演示。它实现了更多的开发人员工具,但由于这个原因,许多项目也可能过度。它感觉不那么轻巧(它的文件大小肯定要大得多,甚至缩小!),如果你想要开发工具的广度和强度,最好使用远程调试。我们大多数想要移动控制台的人只是想要快速测试的基础知识等。

答案 1 :(得分:1)

对于Android-我发现这可行:

  1. 打开Android Studio IDE
  2. 以调试模式连接设备
  3. 打开logcat
  4. 在android设备上运行浏览器用户界面-查看控制台日志输出

这是logcat的一些console.log()行:

[INFO:CONSOLE(18)] "100 - checking FUNC PARAM ... ", source: https://somewhere/util/message_util.js (18)

[INFO:CONSOLE(18)] "101 - > ENTER: AppAuth.onHasAuthFunc", source: https://somewhere/util/message_util.js (18)

感谢@Marcus's answer,建议尝试此方法,建议:

  
    

““插入”本机控制台”

  

~~~~~~

此外,还看到其他建议输入的帖子:about:debug

..进入设备浏览器的地址栏。不确定是否与连接正常有关

答案 2 :(得分:1)

使用到目前为止最好的 Eruda ,至少从我尝试过的那个。