Android Webview:未定义控制台

Android Webview: console is not defined

我试图在 Android Web 视图中使用一些 javascript 打开 html,并在实现我的 WebChromeClient 的 onConsoleMessage 后出现以下错误:

Uncaught ReferenceError: console is not defined -- From line 10 of file:///storage/sdcard0/TargetApp/e184bae3-5824-4e23-a26e-820ce6d32aa2/pres/fce4da510de8431bB3eeD5bdbd1c695d/fce4da510de8431bB3eeD5bdbd1c695d/html/js/target/util_Q_3bb82a6eabd3339d91ca15cb4fd6685c.js

在我的文件的第 10 行之后:

console = console ? console : { log : function() {}, debug : function() {}}; 

奇怪的是,相同的代码在浏览器和 IOS webview 上都能完美运行。

有没有人可以给我一些提示?

对不起大家,不幸的是我的代码示例不完整。问题是 javascript 正在设置严格模式

(function($) {

    'use strict';

    /* 
     * 
     */
    jQuery.ajaxSettings.traditional = true;

    console = console ? console : { log : function() {}, debug : function() {}}; 

    window.c = console;

/*
* ...
*/

规格说明:

With strict mode, you can not, for example, use undeclared variables.

所以,正确的做法是:

var console = window.console = window.console ? window.console : { log : function() {}, debug : function() {}};

唯一悬而未决的问题是为什么其他浏览器如 Chrome、Firefox 和 ios 可以正常工作