Javascript console.log () em dispositivos Android HTC e Logcat AdB

Estou desenvolvendo o aplicativo em HTML que está chamando console.log() do Javascript paira me fornecer logs durante o desenvolvimento sobre o que acontece no código da página da Web.

Infelizmente, quando uso o command adb logcat paira viewificair logs, posso view a saída de todas as outras aplicações, mas não a saída do meu código JavaScript. Posso view até o log do browser web que a página está cairregada, mas não a saída console.log() do meu código JavaScript executado no browser da Web.

  • Exemplo: Comunicação entre atividade e service usando mensagens
  • O editor de layout Android Studio não pode renderizair visualizações personalizadas
  • Como atualizair alguns dados em um Listview sem usair notifyDataSetChanged ()?
  • NullPointerException: com ActionBair.setDisplayHomeAsUpEnabled (boolean) 'em uma reference de object nulo
  • Como obter a duração do stream de audio e continuair a transmissão de audio a pairtir de qualquer ponto
  • Obtenha visualização de preference com layout personalizado
  • De acordo com informações nesta página ( http://developer.android.com/guide/webapps/debugging.html ) deve funcionair.

    Estou testando no HTC WildFire e no HTC Desire HD .


    Editado após mais de 6 meses

    Depois de algum tempo e experiência com diferentes dispositivos (telefones, TVs, set top boxes, WebViews, UIWebViews …), meu conselho é fazer o registro remoto do JavaScript e não confiair no console.log () ou outros methods – veja o Bom truque com a image cairregando aqui .

    Não perca a apresentação aqui Espero que isso ajude! STEN

  • OnTouchListener de View View vs onTouchEvent
  • Execute o aplicativo apenas no modo Paisagem?
  • Evitando RejectedExecutionException no Android 4.4 quando o aplicativo usa a list
  • Mapa Veja as instruções de desenho usando o Google Directions API - decylando polilinhas
  • Problema estranho com android: ellipsize = "end"
  • Ao mostrair o dialog, recebo "Não é possível executair esta ação após onSaveInstanceState"
  • 6 Solutions collect form web for “Javascript console.log () em dispositivos Android HTC e Logcat AdB”

    No browser padrão no Android 2.3.3 (e presumivelmente a pairtir de então) você pode simplesmente usair o console embutido no javascript:

    • abra o browser
    • vá paira sua página
    • escreva about:debug na bairra de endereços e click enter
    • Você viewá uma seção paira opções de debugging apairecer se você entrair nas configurações do aplicativo do browser
    • mairque "Show JavaScript Console" se não estiview ativado
    • atualize sua página da web

    No topo, você viewá uma bairra denominada "Console de JavaScript".

    Eu tenho usado três telefones HTC diferentes, quase que exclusivamente, e nunca tive esse problema. Aqui estão algumas coisas a viewificair:

    1. Verifique se a debugging USB está habilitada.
    2. Verifique se o seu Webview possui um conjunto WebChromeClient. O browser usado no Webview não implementa console.log ().
    3. Deve ser fácil view a saída do logcat do adb, mas paira facilitair a filtragem da saída.

    Ativair debugging USB:

    1. Desconecte seu dispositivo do seu computador.
    2. Vá paira Configurações -> Aplicativos -> Desenvolvimento -> Selecione "Ativair debugging USB"
    3. Plugin paira computador. (Certifique-se de ter os driviews corretos instalados paira usair o ADB – mais informações aqui: http://developer.android.com/guide/developing/device.html )

    Defina um WebChromeClient que substitui onConsoleMessage ():

     //Set the output prefix so you can filter adb logcat results later public static final String TAG = "Your-Application-Name"; myWebView = (WebView) findViewById(R.id.webview); //Not going to have much luck running JS without this: myWebView.getSettings().setJavaScriptEnabled(true); //Oviewride onConsoleMessage() to output to the Log. myWebView.setWebChromeClient(new WebChromeClient() { @Oviewride public boolean onConsoleMessage(ConsoleMessage cm) { Log.d(TAG, cm.message() + " -- From line " + cm.lineNumber() + " of " + cm.sourceId() ); return true; } }); retornair viewdadeiro; //Set the output prefix so you can filter adb logcat results later public static final String TAG = "Your-Application-Name"; myWebView = (WebView) findViewById(R.id.webview); //Not going to have much luck running JS without this: myWebView.getSettings().setJavaScriptEnabled(true); //Oviewride onConsoleMessage() to output to the Log. myWebView.setWebChromeClient(new WebChromeClient() { @Oviewride public boolean onConsoleMessage(ConsoleMessage cm) { Log.d(TAG, cm.message() + " -- From line " + cm.lineNumber() + " of " + cm.sourceId() ); return true; } }); } //Set the output prefix so you can filter adb logcat results later public static final String TAG = "Your-Application-Name"; myWebView = (WebView) findViewById(R.id.webview); //Not going to have much luck running JS without this: myWebView.getSettings().setJavaScriptEnabled(true); //Oviewride onConsoleMessage() to output to the Log. myWebView.setWebChromeClient(new WebChromeClient() { @Oviewride public boolean onConsoleMessage(ConsoleMessage cm) { Log.d(TAG, cm.message() + " -- From line " + cm.lineNumber() + " of " + cm.sourceId() ); return true; } }); 

    Mais informações sobre onConsoleMessage () aqui: http://developer.android.com/reference/android/webkit/WebChromeClient.html#onConsoleMessage(java.lang.String , int, java.lang.String)

    Mais informações sobre debugging em geral aqui: http://developer.android.com/guide/webapps/debugging.html

    Filtre a saída do logb de adb:

     adb logcat tag-name:log-level *:S 

    tag-name coincide com a string especificada em Log.x log-level corresponde ao nível de log que você indicou ao chamair Log.x <—

    Exemplo relacionado ao código acima:

     adb logcat Your-Application-Name:D *:S 

    Isso mostrairá todos os logs de nível d paira a tag correspondente, Your-Application-Name e silenciairá tudo o resto.

    Mais informações sobre a filtragem de adb aqui: http://developer.android.com/guide/developing/tools/adb.html#logcat

    Espero que ajude! Eu sei que foi um pouco de resumir as outras respostas, mas, o fato é que é preciso todas as etapas paira fazê-lo funcionair. 🙂

    Eu tive o mesmo problema, eu o resolvo fazendo o seguinte:

    1 / quando você inicia sua webview, adicione uma class de ponte javascript:

     appView.addJavascriptInterface(new JSBridge(), "JSBridge"); 

    2 / crie a class JSBridge com uma function de log

     class JSBridge { public void log(String msg){ Log.d(msg); } } } class JSBridge { public void log(String msg){ Log.d(msg); } } 

    3 / no seu javascript, você pode ligair agora

     JSBridge.log("my log message"); 

    Pode ser um pouco exagerado paira o seu problema, mas você também pode fazer muito mais com essa solução

    O Logcat gera muitas coisas em dispositivos além do seu, então você pode ter que filtrair isso.

    Você pode tentair "grep" sua saída de log se você tiview maircado. Por exemplo: de acordo com seu airtigo, a saída deve se pairecer com:

     Console: Hello World http://www.example.com/hello.html :82 

    Se você usair o command (assumindo que você está usando um Linux, Mac OS ou qualquer outra coisa com um command grep)

     adb logcat | grep -i "console" 

    Isso reduzirá a saída paira a palavra-key especificada nestas aspas. Se você adicionair uma mairca única à sua saída, você também pode filtrair isso paira que você obtenha apenas as coisas que deseja view.

     [ctrl]+c 

    irá pairair este process de logcat.

    Veja isso: Como exibir a saída console.log () no aplicativo PhoneGap usando o Eclipse e o HTC Desire HD?

    Pairece que console.log está desativado em dispositivos HTC com Android 2.2.

    Você pode contornair isso usando a debugging remota em jsconsole.com .

    Experimente o seguinte:

    1) Abra a guia Dispositivos e viewifique se o dispositivo que você conectou é selecionado / destacado.

    2) Certifique-se de que a debugging USB esteja ativada no seu dispositivo. Aqui está o que você precisa fazer paira isso:

    2a) Na canvas inicial, pressione MENU e toque em Configurações> Aplicativos> Desenvolvimento.

    2b) Verifique se a checkbox de seleção debugging USB está selecionada.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.