cordoba Device Plugin installé par:
Sudo cordova plugin add org.Apache.cordova.device
puis téléchargé ngCordova et inclus ng-cordova.min.js dans le dossier js et également inclus dans index.html
ensuite ce que j'ai fait est injecté ngCordova comme suit
angular.module('starter', ['ionic', 'starter.controllers','ngCordova'])
puis inclus dans le contrôleur comme suit
angular.module('starter.controllers', [])
.controller('AppCtrl', function($scope, $ionicModal, $timeout, $ionicPlatform,$cordovaDevice)
but still getting the following errors
ReferenceError: device is not defined
at Object.getUUID (http://localhost:8100/js/ng-cordova.min.js:1:14929)
at new <anonymous> (http://localhost:8100/js/controllers.js:27:26)
at invoke (http://localhost:8100/lib/ionic/js/ionic.bundle.js:11591:17)
at Object.instantiate (http://localhost:8100/lib/ionic/js/ionic.bundle.js:11602:23)
at http://localhost:8100/lib/ionic/js/ionic.bundle.js:14906:28
at updateView (http://localhost:8100/lib/ionic/js/ionic.bundle.js:42986:30)
at eventHook (http://localhost:8100/lib/ionic/js/ionic.bundle.js:42933:17)
at Scope.$broadcast (http://localhost:8100/lib/ionic/js/ionic.bundle.js:20605:28)
at $state.transition.resolved.then.$state.transition (http://localhost:8100/lib/ionic/js/ionic.bundle.js:34122:22)
at wrappedCallback (http://localhost:8100/lib/ionic/js/ionic.bundle.js:19197:81)
Pouvez-vous maintenant me dire ce qui s'est mal passé?
Si y a-t-il un autre moyen de lire l'UUID du périphérique, indiquez-lui le sens.
wow découvert ce que je faisais mal ... à travers cette question. http://forum.ionicframework.com/t/problem-to-use-ngcordova-device-is-not-defined/11979
lorsque nous testons sur un autre appareil dont la plate-forme est autre que celle prise en charge par cordova, cela se produit . Ce fut une découverte utile pour moi.
Oui, il y a un autre moyen. Vous n'avez simplement pas besoin du ngCordova pour cela.
Lorsque vous ajoutez le plugin cordova plugin add org.Apache.cordova.device
, il est chargé dans votre application. Par conséquent, les informations souhaitées se trouvent à window.device
.
Si vous voulez obtenir de l’appareil n'importe où dans le code, il vous suffit d’appeler window.device.uuid
.
Si vous voulez dès que l'application démarre, utilisez:
ionic.Platform.ready(function(){
console.log( window.device.uuid );
});
Si vous utilisez '> ionic serve', l'appareil sera "non défini". Essayez dans un émulateur ou un périphérique physique.
Utilisez ngCordova and cordova Device plugin :
cordova plugin ajoute org.Apache.cordova.device
module.controller('MyCtrl', function($scope, $cordovaDevice) {
var uuid = $cordovaDevice.getUUID();
});
Dans la v2, cela fonctionne comme ceci:
import { Device } from 'ionic-native';
console.log('Device UUID is: ' + Device.uuid);
Vous pouvez simplement utiliser ionic.Platform.device()
dans votre fonction platform.ready
.
$ionicPlatform.ready(function {
console.log(ionic.Platform.device());// returns an object containing device uuid,version, platform, manufacturer ...
});
espérons que cela aide quelqu'un :).
Cordialement.
Installer:
@ ionic-native/core @ ionic-native/device
entrez la description du lien ici
ionic cordova plugin add cordova-plugin-device
npm install --save @ionic-native/device
Ajouter ce plugin au module de votre application
// app.module.ts
import { Device } from '@ionic-native/device';
...
@NgModule({
...
providers: [
...
Device
...
]
...
})
export class AppModule { }
Usage
import { Device } from '@ionic-native/device';
constructor(private device: Device) { }
...
console.log('Device Model is: ' + this.device.model+
'\n Device UUID is: ' + this.device.uuid+
'\n Device serial is: ' + this.device.serial+
'\n Device platform is: ' + this.device.platform+
'\n Device version is: ' + this.device.version+
'\n Device manufacturer is: ' + this.device.manufacturer);
Si ne pas exécuter change "import { Device } from '@ionic-native/device';"
pour "import { Device } from '@ionic-native/device/ngx';"
Et "this.device.uuid"
pour "Enquêter"
Utilisez ces commandes pour exécuter dans le navigateur
ionic build
ionic cordova platform add browser
cordova run browser
Et fonctionne! dans ces versions
dans le navigateur
dans un appareil réel
Cela fait des heures que je lutte avec cela, installez le plugin device cordova avec:
cordova plugin add cordova-plugin-device
assurez-vous de référencer également le plug-in dans votre fichier config.xml:
<plugin name="cordova-plugin-device" source="npm" spec="~1.1.1" />
http://forum.ionicframework.com/t/ionic-cordova-device-uuid/13652
Vous pouvez uniquement accéder aux plug-ins cordova dans la fonction de rappel ionic.Platform.ready ():
angular.module('starter.controllers', [])
.controller('DashCtrl', function ($scope, $state, $cordovaDevice) {
var init = function () {
console.log("initializing device");
try {
$scope.uuid = $cordovaDevice.getUUID();
}
catch (err) {
console.log("Error " + err.message);
alert("error " + err.$$failure.message);
}
};
ionic.Platform.ready(function(){
init();
});
})
En effet, les plugins Cordova prennent plus de temps à charger que l'application Web. Le rappel ionic.Platform.ready () est déclenché dès que Cordova est complètement chargé ou immédiatement s'il est déjà chargé.