【问题标题】:console.log is not working in iOS Phonegap App even after adding the console plugin即使添加了控制台插件,console.log 在 iOS Phonegap 应用程序中也不起作用
【发布时间】:2014-02-17 10:18:33
【问题描述】:

我在 Cordova CLI 中创建了一个 Phonegap iOS 应用程序。我已经添加了控制台插件,是的,deviceready 被成功调用,但是 console.log 没有工作,并且没有在 XCode 日志中打印任何东西。

插件安装:-

cordova -v
3.3.1-0.3.1

sudo cordova 插件添加 org.apache.cordova.console
通过插件注册表获取插件“org.apache.cordova.console”
开始为 ios 安装“org.apache.cordova.console”
准备ios项目
org.apache.cordova.console 安装在 ios 上。

sudo cordova 插件 ls
['org.apache.cordova.console',
'org.apache.cordova.device',
'org.apache.cordova.dialogs',
'org.apache.cordova.geolocation',
'org.apache.cordova.globalization',
'org.apache.cordova.inappbrowser',
'org.apache.cordova.media',
'org.apache.cordova.network-信息',
'org.apache.cordova.splashscreen',
'org.apache.cordova.vibration']

Java 脚本:-

var app = {
    initialize: function() {
       this.bindEvents();
    },
    bindEvents: function() {
       document.addEventListener('deviceready', this.onDeviceReady, false);
    },
    onDeviceReady: function() {
       app.receivedEvent('deviceready');
    },
    receivedEvent: function(id) {
       console.log('Device Ready Received'); //It is not working
       alert("Device ready called");  //It is Working
    }
};

【问题讨论】:

  • 您是否尝试过卸载插件并重新安装?
  • 是的。我重新安装后遇到的同样问题。 :(
  • 嗯...它对我有用。也许你用一个新的示例项目再试一次。还有一个更新版本的 Cordova (3.3.1-0.4.2) 可用。也许这个对你有用。
  • 检查控制台是否在 config.xml 中定义:<feature name="Console"> <param name="ios-package" value="CDVLogger" /> </feature>

标签: javascript ios cordova cordova-plugins


【解决方案1】:

我已经通过这些步骤解决了这个问题

第 1 步:

我只是从另一个使用 console.log 的 cordova 项目复制一个目录

sudo cp -r DIFF_CORDOVA_PROJECT_PATH/platforms/ios/www/plugins/org.apache.cordova.console CURRENT_CORDOVA_PROJECT_PATH/platforms/ios/www/plugins/

第 2 步:

在module.exports JSON数组下的CURRENT_CORDOVA_PROJECT_PATH/platforms/ios/www/cordova_plugins.js文件中添加代码

{
    "file": "plugins/org.apache.cordova.console/www/console-via-logger.js",
    "id": "org.apache.cordova.console.console",
    "clobbers": [
        "console"
    ]
},
{
    "file": "plugins/org.apache.cordova.console/www/logger.js",
    "id": "org.apache.cordova.console.logger",
    "clobbers": [
        "cordova.logger"
    ]
}

第 3 步:

在 module.exports.metadata JSON 数组中的同一个 cordova_plugins.js 文件中添加元数据:-

“org.apache.cordova.console”:“0.2.7”

【讨论】:

    【解决方案2】:

    在我的情况下,原因可能是因为该插件是第一次从 Windows 机器上安装的,它以前只适用于 Android 平台。 当我尝试从我的 Macintosh 重新安装它时,我遇到了与 Shashi 相同的问题。

    这是由于编译源列表中缺少源文件 CDVLogger.m 造成的。所以我建议检查这个文件是否已经被添加:

    在 Xcode 资源管理器中单击根项目文件 > 构建阶段 > 编译源部分

    如果 CDVLogger.m 文件不存在,请将其添加并尝试再次运行项目。这解决了我的问题。

    编辑:另外确保您的 index.html 页面包含此 HTML:

    <div id="deviceready" class="blink">
        <p class="event listening">Connecting to Device</p>
        <p class="event received">Device is Ready</p>
    </div>
    

    【讨论】:

      【解决方案3】:

      我尝试了很多在 stackoverflow 中发布的解决方案,但没有一个对我有用。将 cordova.js 放在我的个人 JS 文件夹之外之后,console.log 工作正常。

      <script charset="utf-8" src="cordova.js"></script>
      

      【讨论】:

        【解决方案4】:

        在代码部分添加&lt;script type="text/javascript" src="cordova.js"&gt;&lt;/script&gt;

        【讨论】:

          【解决方案5】:

          我也遇到过。我不会得到控制台输出,而且我的应用程序的 default.html 文件永远不会真正加载。我的问题是我的控制台插件实际上是小数点后/旧(0.2.12而不是0.2.13)。我一更新,一切就又开始工作了……啊!

          相关:https://stackoverflow.com/a/32035260/826308

          【讨论】:

            【解决方案6】:

            确保您执行以下操作:

            function onDeviceReady() {
            if (window.cordova.logger) {
                window.cordova.logger.__onDeviceReady();
            } } document.addEventListener('deviceready', onDeviceReady, false);`
            

            【讨论】:

              【解决方案7】:

              在我的情况下,缺少以下 div

              <div id="deviceready" class="blink">
                <p class="event listening">Connecting to Device</p>
                <p class="event received">Device is Ready</p>
              </div>
              

              【讨论】:

                猜你喜欢
                • 2013-10-11
                • 1970-01-01
                • 2012-11-02
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多