Javascript Android Webview:未定义控制台

Javascript Android Webview:未定义控制台,javascript,android,webview,android-webview,Javascript,Android,Webview,Android Webview,我试图在Android Webview中打开带有一些Java脚本的html,在实现WebChromeClient的OnConsolleMessage后出现以下错误: Uncaught ReferenceError: console is not defined -- From line 10 of file:///storage/sdcard0/TargetApp/e184bae3-5824-4e23-a26e-820ce6d32aa2/pres/fce4da510de8431bB3eeD5bd

我试图在Android Webview中打开带有一些Java脚本的html,在实现WebChromeClient的OnConsolleMessage后出现以下错误:

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;

/*
* ...
*/
具体说明如下:

例如,在严格模式下,不能使用未声明的变量

因此,正确的方法是:

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

唯一仍然存在的问题是,为什么其他浏览器,如Chrome、Firefox和ios,它可以工作

您是否尝试过这个控制台=控制台|{log:function(){},debug:function(){};还没有,我会尝试一些不同的东西,但问题的关键是为什么这个简单的条件可能是错误的。事实上,它适用于我测试过的每个webview或浏览器,除非android webview