インストールされたCordovaデバイスプラグイン:
Sudo cordova plugin add org.Apache.cordova.device
次に、ngCordovaをダウンロードし、ng-cordova.min.jsをjsフォルダーに含め、index.htmlにも含めました。
次に私がやったことは次のようにngCordovaに注入されます
angular.module('starter', ['ionic', 'starter.controllers','ngCordova'])
次のようにコントローラーに含まれます
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)
何が間違っていたのか教えてもらえますか?
デバイスUUIDを読み取る別の方法がある場合、その方向を示してくれます。
うわー、私は何が間違っているのかを知りました...この質問を通して。 http://forum.ionicframework.com/t/problem-to-use-ngcordova-device-is-not-defined/11979
コルドバがサポートしている以外のプラットフォームを備えた他のデバイスでテストすると、これが発生します。これは私にとって有用な発見でした。
はい、別の方法があります。 ngCordovaは必要ありませんこれには。
プラグインを追加するとcordova plugin add org.Apache.cordova.device
アプリケーションにロードされるため、必要な情報はwindow.device
。
コード内の任意の場所でデバイスのUUIDを取得する場合は、window.device.uuid
。
アプリの起動直後に必要な場合は、次を使用します。
ionic.Platform.ready(function(){
console.log( window.device.uuid );
});
「> ionic serve」を使用している場合、デバイスは「定義されていません。」エミュレータまたは物理デバイスで試してください。
ngCordovaおよびcordova Deviceプラグイン を使用します。
cordovaプラグインはorg.Apache.cordova.deviceを追加します
module.controller('MyCtrl', function($scope, $cordovaDevice) {
var uuid = $cordovaDevice.getUUID();
});
V2内では次のように機能します。
import { Device } from 'ionic-native';
console.log('Device UUID is: ' + Device.uuid);
_platform.ready
_関数でionic.Platform.device()
を使用できます。
_$ionicPlatform.ready(function {
console.log(ionic.Platform.device());// returns an object containing device uuid,version, platform, manufacturer ...
});
_
これが誰かを助けることを願っています:)。
よろしく。
インストール:
@ ionic-native/core @ ionic-native/device
ionic cordova plugin add cordova-plugin-device
npm install --save @ionic-native/device
このプラグインをアプリのモジュールに追加します
// app.module.ts
import { Device } from '@ionic-native/device';
...
@NgModule({
...
providers: [
...
Device
...
]
...
})
export class AppModule { }
使用法
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);
実行されない場合は、"import { Device } from '@ionic-native/device';"
の"import { Device } from '@ionic-native/device/ngx';"
を変更します
そして"this.device.uuid"
は「調査」
これらのコマンドを使用してブラウザーで実行する
ionic build
ionic cordova platform add browser
cordova run browser
そして動作します!これらのバージョンで
ブラウザで
実デバイスで
今日、これに何時間も苦労してきました。次を使用してCordovaデバイスプラグインをインストールしてください。
cordova plugin add cordova-plugin-device
config.xmlでプラグインも参照していることを確認してください。
<plugin name="cordova-plugin-device" source="npm" spec="~1.1.1" />
http://forum.ionicframework.com/t/ionic-cordova-device-uuid/13652
Ionic.Platform.ready()コールバック関数内でのみcordovaプラグインにアクセスできます。
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();
});
})
これは、CordovaプラグインがWebアプリケーションよりもロードに時間がかかるためです。 ionic.Platform.ready()コールバックは、Cordovaが完全にロードされるとすぐに、または既にロードされている場合はすぐにトリガーされます。