tutorial run instalar descargar javascript file cordova plugins vue.js

javascript - run - instalar apache cordova



¿Agregar complementos de Cordova a Vue-Cordova? (2)

Es posible que tenga que seguir este enlace para obtener soporte para Vue-Cordova si no es compatible de manera inmediata. El procedimiento paso a paso se define en el enlace.

También la pregunta es respondida por el propio autor aquí . Espero eso ayude. Aclamaciones

Estoy intentando usar Vue-Cordova junto con Cordova-plugin-file-opener2 para abrir archivos PDF en aplicaciones ios / android.

Vue-Cordova define los complementos relacionados con el dispositivo en la propiedad de datos de la instancia de la aplicación vue:

data: function () { return { cordova: Vue.cordova, plugins: { ''cordova-plugin-camera'': function () { if (!Vue.cordova.camera) { window.alert(''Vue.cordova.camera not found !'') return } Vue.cordova.camera.getPicture((imageURI) => { window.alert(''Photo URI : '' + imageURI) }, (message) => { window.alert(''FAILED : '' + message) }, { quality: 50, destinationType: Vue.cordova.camera.DestinationType.FILE_URI }) }, ....

Puedo acceder a estas propiedades en mi simulador ios, pero no puedo acceder a los complementos que instalo a través de cordova-cli. El objeto Cordova que debería estar expuesto a los comandos de abrir archivos file2 como:

cordova.plugins.fileOpener2.open( filePath, fileMIMEType, { error : function(){ }, success : function(){ } } );

tiene propiedades no incluidas en la instancia de Vue.cordova. Cuando intento acceder a ellos con: Vue.cordova.plugins.fileOpener2 estoy definido.

¿Alguien puede decirme qué debo hacer para agregar complementos a Vue-Cordova, o posiblemente pasar por alto de alguna manera?

EDITAR:

Mi intento de solución no funciona, pero siento que me estoy acercando.

Tomé los siguientes pasos:

  1. clonado https://github.com/pwlin/cordova-plugin-file-opener2 en la carpeta de complementos de mi proyecto cordova
  2. cambió lo siguiente en node_modules/vue-cordova/index.js :

    function (module, exports, webpack_require ) {

    ''use strict''; // list here all supported plugins var pluginsList = [''cordova-plugin-camera'', ''cordova-plugin-device'', ''cordova-plugin-geolocation'', ''cordova-plugin-contacts'', ''cordova-plugin-file-opener2'']; exports.install = function (Vue, options) { // declare global Vue.cordova object Vue.cordova = Vue.cordova || { deviceready: false, plugins: [] }; // Cordova events wrapper Vue.cordova.on = function (eventName, cb) { document.addEventListener(eventName, cb, false); }; // let Vue know that deviceready has been triggered document.addEventListener(''deviceready'', function () { Vue.cordova.deviceready = true; }, false); // load supported plugins pluginsList.forEach(function (pluginName) { var plugin = __webpack_require__(1)("./" + pluginName); plugin.install(Vue, options, function (pluginLoaded) { if (pluginLoaded) { Vue.cordova.plugins.push(pluginName); } if (Vue.config.debug) { console.log(''[VueCordova]'', pluginName, ''→'', pluginLoaded ? ''loaded'' : ''not loaded''); } }); }); };

    / /}, / 1 / / / function (module, exports, webpack_require ) {

    var map = { "./cordova-plugin-camera": 2, "./cordova-plugin-camera.js": 2, "./cordova-plugin-contacts": 3, "./cordova-plugin-contacts.js": 3, "./cordova-plugin-device": 4, "./cordova-plugin-device.js": 4, "./cordova-plugin-geolocation": 5, "./cordova-plugin-geolocation.js": 5, "./cordova-plugin-file-opener2": 6 }; function webpackContext(req) { return __webpack_require__(webpackContextResolve(req)); }; function webpackContextResolve(req) { return map[req] || (function() { throw new Error("Cannot find module ''" + req + "''.") }()); }; webpackContext.keys = function webpackContextKeys() { return Object.keys(map); }; webpackContext.resolve = webpackContextResolve; module.exports = webpackContext; webpackContext.id = 1;

    / *** /},

    ...

    / *** / función (módulo, exportaciones) {

    ''use strict''; exports.install = function (Vue, options, cb) { document.addEventListener(''deviceready'', function () { if (typeof cordova.plugins.fileOpener2 === ''undefined''){ return cb(false); } // pass through the geolocation object Vue.cordova.fileOpener2 = cordova.plugins.fileOpener2; return cb(true); }, false); }; /***/ },

  3. agregué lo siguiente a los complementos en el objeto de datos en app.vue: (No estoy seguro de qué más agregar a esta definición. ¿Alguna sugerencia?)

    ''cordova-plugin-file-opener2'': function () {if (! Vue.cordova.fileOpener2) {window.alert (''Vue.cordova.fileOpener2 no encontrado!'') return}}

Después de seguir estos tres pasos, espero que {{fileOpener2}} esté disponible en mi plantilla como un objeto, pero no lo es. ¿Me estoy perdiendo de algo?


¿ deviceready evento deviceready ?

Tal vez intente acceder a su complemento una vez que se haya activado este evento. Ejemplo:

Vue.cordova.on(''deviceready'', () => { // here check for your variable })

Sin embargo, lo más probable es que no hayas seguido la guía de contribución para admitir este complemento tal como lo establece Gandhi allí. No debe editar los archivos generados por el paquete web, sino generar el suyo propio:

  • clonar el repo vue-cordova
  • reemplace node_modules/vue-cordova en su proyecto con un enlace simbólico al repositorio clonado
  • agregue los complementos y ejecute npm run build (o npm run dev )

Luego, vuelva a intentar crear su aplicación Cordova