获取所有 Ti.API.info 字符串到一个数组

Get all the Ti.API.info strings to an array

我需要使用 app.js 文件末尾的一些函数将所有 Ti.API.info 字符串放入一个数组,如何在打印后将所有这些字符串放入数组在控制台上。例如

Ti.API.info("Hello");
Ti.API.info("Good Morning");
Ti.API.info("Good Afternoon");
Ti.API.info("Good Evening");

在代码的末尾,我需要一个函数来检索和存储数组中的所有字符串。我该怎么做,谁能帮帮我?

您可以覆盖现有的 Ti.API.info 函数,但是, 不强烈推荐 因为人们可能不知道您更改了它(即使所做的更改并没有'影响初始行为)。

我认为最好的方法是定义自己的记录器。

customLogger.js

var Logger = function () {
    /* Define an array to store logs */   
    this._logs = [];
}

Logger.prototype.info = function () {
    /* Iterate over each msg and store them */
    for(var i = 0, msg; msg = arguments[i]; i++) {
        this._logs.push({date: new Date(), msg: msg.toString()});          
    }

    /* Do the classic log */
    Ti.API.info.apply(Ti.API, arguments);
}

Logger.prototype.getLogs = function () {
    return JSON.stringify(this._logs, null, "\t");
}

/* Export The API */
var logger = new Logger(Ti.API);
exports.info = function() {
    Logger.prototype.info.apply(logger, arguments);
};

exports.getLogs = function () {
    return Logger.prototype.getLogs.apply(logger);
};

然后,在你的app.js

var Logger = require("customLogger"); // Adapt the path to suits your architecture

Logger.info("My log message");

// ...

Ti.API.debug("Those are my logs:\n", Logger.getLogs());