在浏览器

时间:2016-05-08 15:53:19

标签: cordova browser cordova-plugins

要测试Cordova应用程序,我需要在模拟器或物理设备上运行它。这是一个缓慢的过程,所以我尽可能在浏览器中测试它。

但浏览器没有联系人数据库,因此联系人插件无效。

有没有办法在浏览器中添加模拟(联系人,日期选择器等)以进行快速测试?

5 个答案:

答案 0 :(得分:5)

您可以使用http://incubator.apache.org/projects/ripple.html

安装过程很简单

npm install -g ripple-emulator

然后转到你的cordova项目目录并运行。

cordova prepare

然后运行以下命令启动模拟器

ripple emulate --path platforms/android/assets/www
你会得到这样的东西 Screenshot of ripple emulator

请参阅raymondcamden's blog

上有关涟漪的详细说明

答案 1 :(得分:3)

1)cordova平台添加浏览器-force

2)cordova服务

3)在浏览器中: http://localhost:8000

4)点击屏幕上的“浏览器”链接。它会打开你的应用程序。

答案 2 :(得分:0)

通过具有清晰精确界面的服务访问您的插件。这样,您就可以为测试或生产提供此接口的不同实现。

看看这个非常基本的TypeScript示例app。我为服务构建了interface,告诉您设备是否在线。我对“生产”的实现看起来像this。为了测试,我可以提供另一种不依赖于cordova-network-plugin的实现,但是例如只是随机返回truefalse

您也可以将其传输给联系人:构建一个界面和不同的实现,随机返回实际的联系人(在生产中)或一些(或多或少)硬编码的联系人(在测试时)。

答案 3 :(得分:0)

在我看来,最好的选择是使用phonegap serve。 Ripple还可以,但缺乏原生功能管理。

某些插件具有浏览器的实现,因此可以使用完整的api。那些没有它的人,phonegap cli将管理它。

要使用它,您必须先安装浏览器平台:

$ cordova platform add browser
$ phonegap serve

我一直在尝试使用cordova serve,但在我的案例中它并不像phonegap那样有效。

启动phonegap serve后,您可以在浏览器中调试您的应用。

<强>更新

https://github.com/apache/cordova-plugin-contacts/pull/122/files开始,您可以实现自己的回调响应。这是一个非常直接的实现,您可以根据需要进行扩展(有关实现的详细信息,请参阅createfindpickContactcontact

var contacts = [];
var mockContacts = require('./mockContacts'); // This is a json mock file with your contacts

function Contact(contact) {
    var field;
    for (field in contact) {
        if (contact.hasOwnProperty(field)) {
            this[field] = contact[field];
        }
    }
}
Contact.prototype.clone = function () {
    // You can implement this methods if needed as well
}
Contact.prototype.remove = function () {
    // You can implement this methods if needed as well
}
Contact.prototype.save = function () {
    // You can implement this methods if needed as well
}

mockContacts.map(function (contact) {
    contacts.push(new Contact(contact));
};

function createContact(contact) {
    var newContact = new Contact(contact);
    contacts.push(newContact);
    return newContact;
}

function findContact(contactFields, contactSuccess, contactError, contactFindOptions) {
    contactSuccess = contactSuccess || function () {};
    contactSuccess(contacts); // You can filter the contacts if needed
    return true;
}

function pickContact(contactSuccess, contactError) {
    contactSuccess = contactSuccess || function () {};
    contactSuccess(contacts[0]);
    return true;
}

module.exports = {
    create: createContact,
    find: findContact,
    pickContact: pickContact
};

答案 4 :(得分:0)

您可以通过 Cordova-simulate

模拟您的插件

(exp expression)

此解决方案基于浏览器,允许快速调整更常见的设备属性(地理位置、相机、设备、网络连接、加速度计等)。

可以通过命令行运行或与 VS 代码的调试集成。据我所知,这是 Ripple 模拟器的演变。