как получить ссылку на плагины Cordova в коде Sencha Touch

Я собираюсь добавить несколько плагинов в свой проект Cordova. Но проект Cordova генерируется Sencha Touch 2.

Так что если бы я добавил плагин под кордову,

как получить ссылку на плагины Cordova в коде Sencha Touch? (Поскольку код Sencha Touch находится НА ОДИН уровень ВЫШЕ плагина Cordova)

И я не должен трогать сгенерированный код кордовы, так как он будет заменяться каждый раз, когда я повторно генерирую проект кордовы с помощью команд Sencha Touch CMD.


Обновить

Я хотел бы уточнить свой вопрос, предоставив сценарий:

Например, я хотел бы использовать камеру в коде Sencha Touch, но доступ к собственным ресурсам в мобильном телефоне осуществляется с помощью плагинов Cordova. И при запуске команды Sencha Touch для создания проекта Cordova весь код в папке Cordova будет перезаписан, поэтому невозможно выполнить кодирование в папке Cordova, поэтому все кодирование должно выполняться на уровне Sencha Touch.

Таким образом, проблема становится -> как я могу получить доступ к камере в сенсорном коде sencha, если плагин находится в области действия Cordova, что означает, что доступ к плагинам Cordova выходит за рамки Sencha Touch.

Чтобы было понятнее, вот структура проекта Sencha Touch, который содержит проект Cordova:

Root folder for Sencha Touch Project
-app
-cordova
  -plugins
-...

так что, как вы можете видеть, плагины находятся в папке Cordova, поэтому я не знаю, как получить ссылку на плагин камеры, например:

Ext.navigator.camera.function() (like this?)

в сенсорном коде Sencha.

Я надеюсь, что мое объяснение имеет смысл для вас.

Спасибо.


person Franva    schedule 09.05.2014    source источник
comment
Почему никто не прокомментировал мой вопрос? Что-то не так с моим вопросом??? Любые исправления, советы приветствуются.   -  person Franva    schedule 12.05.2014
comment
только что перефразировал мой вопрос и, надеюсь, он ясно передает мое выражение.   -  person Franva    schedule 14.05.2014
comment
только что добавил щедрость к этому вопросу, спасибо за любую помощь.   -  person Franva    schedule 14.05.2014


Ответы (2)


Плагины Cordova объявляют в своем манифесте (например, plugin.xml), используя элемент clobbers, как функциональность отображается в среде выполнения браузера. Значение атрибута target добавляется к объекту окна и может использоваться сразу после запуска события deviceready.

Дополнительную информацию о plugin.xml и clobbers можно найти здесь< /а>.

person Vlad Stirbu    schedule 14.05.2014
comment
Привет Влад, спасибо за ответ. Я обновил свой вопрос, чтобы уточнить, чего я хочу. Пожалуйста, посмотрите и спасибо. - person Franva; 15.05.2014
comment
Ознакомьтесь с этим руководством. Плагин обычно доступен как window.{clobberValue}. - person Vlad Stirbu; 15.05.2014
comment
привет Влад, здорово видеть там официальный код! Однако перед этим кодом, я думаю, должны быть некоторые шаги для подключения Sencha Touch и pulgin Cordova, иначе мы не сможем получить ссылку на камеру. Например. Чтобы использовать плагины Cordova, пользователи должны добавить пути к файлам плагинов в app.js, app.json или где-то еще. Так что это та часть, которую я особенно ищу. Надеюсь, мое объяснение имеет смысл для вас. Спасибо за помощь. - person Franva; 16.05.2014
comment
Руководство должно быть полным. Здесь также описана проблема: заголовок stackoverflow.com/questions/22457136/ - person Vlad Stirbu; 16.05.2014
comment
Привет, Влад, я просмотрел твой ответ, который более подробен, чем мой, поэтому решил установить твой пост в качестве ответа. Спасибо - person Franva; 07.06.2014

Я нашел ответ на https://github.com/CaliLuke/NativeContacts/blob/master/app/view/Picture.js

Для удобства вот код.

/*
 * File: app/view/Picture.js
 *
 * This file was generated by Sencha Architect version 2.0.0.
 * http://www.sencha.com/products/architect/
 *
 * This file requires use of the Sencha Touch 2.0.x library, under independent license.
 * License of Sencha Architect does not include license for Sencha Touch 2.0.x. For more
 * details see http://www.sencha.com/license or contact [email protected].
 *
 * This file will be auto-generated each and everytime you save your project.
 *
 * Do NOT hand edit this file.
 */

Ext.define('Contact.view.Picture', {
    extend: 'Ext.Container',
    alias: 'widget.contactpic',

    config: {
        height: 120,
        minHeight: 100,
        style: 'overflow: hidden',
        ui: '',
        layout: {
            align: 'center',
            type: 'vbox'
        },
        overflow: 'hidden',
        tpl: [
            '<img src="{picture}" width="160" />'
        ],
        items: [
            {
                xtype: 'component',
                html: ''
            },
            {
                xtype: 'button',
                bottom: 5,
                itemId: 'mybutton',
                right: 5,
                iconCls: 'add',
                iconMask: true
            }
        ],
        listeners: [
            {
                fn: 'onMybuttonTap',
                event: 'tap',
                delegate: '#mybutton'
            }
        ]
    },

    onMybuttonTap: function(button, e, options) {
        Ext.device.Camera.capture({
            source: 'camera',
            destination: 'file',

            success: function(url) {
                this.fireEvent('change', this, url);
            },
            failure: function() {
                Ext.Msg.alert('Error', 'There was an error when acquiring the picture.');
            },
            scope: this
        });
    }

});
person Franva    schedule 20.05.2014