2015-04-24 6 views
1

У меня есть WebView, в который я загружаю веб-страницу, я установил пользовательский WebChromeClient для захвата журналов консоли, но я обнаружил, что он неполный по сравнению с консолью в браузере. Сообщение, возвращаемое cm.message(), не содержит всех значений, переданных консольным методам.консольное сообщение, снятое onConsoleMessage, является неполным

console.log("Test");//Test

будет работать, но следующий будет отображаться только первый Param

console.log("test", 1);//test - expected test 1

есть ли способ обойти это?

ответ

2

Интересная ошибка!

Вы можете обернуть console.log в свою собственную функцию, которая объединяет все аргументы в одну строку. Код JavaScript для этого ниже:

(function() { 
    var oldLog = console.log; 
    console.log = function() { 
     oldLog.call(console, Array.prototype.slice.call(arguments).join(" ")); 
    } 
})(); 

Вы можете вводить его в страницу с WebView.loadUrl('javascript:...') или WebView.evaluateJavascript.

+0

'webView.loadUrl' следует называть ASAP, я поместил его в 'WebViewCLient # onPageStarted'. –

+0

Рад, что он работает. Я подал ошибку против WebView: http://crbug.com/481013. Спасибо, что указали на эту проблему! –