当用户运行我们的应用程序时,我如何获取设备详细信息

How Can I Get device Details when the user run our app?

本文关键字:何获取 获取 详细信息 我们 运行 用户 应用程序      更新时间:2023-09-26

我是angular js和ionic移动应用程序的新手,我遇到了一个错误。我怀疑如果用户当时打开应用程序,我需要获得设备名称、版本、型号等移动详细信息。为此,我编写了单独的控制器。。

<!-- Module File -->
var moduleName = angular.module('InfoModule', ['ngRoute','ui.bootstrap','ngTouch','ngAside','ngDialog','ionic'])
.run(['$rootScope','$location','StorageService', 
      function ($rootScope,$location,StorageService) {
    $rootScope.appInitDone = false;
    $rootScope.currentPage = "home";
    $rootScope.loginStatus = 0;    
}]);
<!-- Controller -->
moduleName.controller('PlatformController', function ($scope,$filter,$rootScope,$apply,$location,$ionicPlatform, $cordovaDevice) {
    $ionicPlatform.ready(function() {
        $scope.$apply(function() {
            // sometimes binding does not work! :/
            // getting device infor from $cordovaDevice
            var device = $cordovaDevice.getDevice();
            console.log(device);
            $scope.manufacturer = device.manufacturer;
            $scope.model = device.model;
            $scope.platform = device.platform;
            $scope.uuid = device.uuid;
            console.log($scope.uuid);
        });
    });
});
<!--This is Home Html File-->
<div ng-controller="PlatformController"></div>
<div ng-controller="HomeController">
        <input type="textbox" name="searchBox" placeholder="Search Form SomeThing"  class="form-control" data-ng-model="someType" ng-click="Search()" style="height:40px;margin-top:50px;"/>
</div>
<!--Injected Links -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/ionic/1.1.0/css/ionic.min.css"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/ionic/1.1.0/js/ionic.min.js"></script>

I am getting $cordovaDevice Error and $Injector Mobuler error
       Uncaught Error: [$injector:modulerr] http://errors.angularjs.org/1.3.12/$injector/modulerr?p0=InfoMod…p%3A%2F%2F127.0.0.1%3A50666%2Fjs%2FScriptFiles%2Fangular.min.js%3A17%3A381)

And also where we need to call the Plat Form Controller to get device information .......Please help me.......If you have any other ideas or examples please give me the solution..please....

And Also I tried another way...In module i wrote another way...Like bellow
<!-- If tried Like this i am Getting Injector Modular like above error -->
var infomoduler = angular.module('InfoModule', ['ngRoute','ui.bootstrap','ngTouch','ngAside','ngDialog','ng-bootstrap-datepicker','angular-loading-bar','infinite-scroll','ionic'])
.run(['$rootScope','$location', 
      function ($rootScope,$location) {
    $rootScope.appInitDone = false;
    $rootScope.currentPage = "home";
    $rootScope.loginStatus = 0;
   ionic.Platform.ready(function(){
    // will execute when device is ready, or immediately if the device is already ready.
  });
  var deviceInformation = ionic.Platform.device();
  var isWebView = ionic.Platform.isWebView();
  var isIPad = ionic.Platform.isIPad();
  var isIOS = ionic.Platform.isIOS();
  var isAndroid = ionic.Platform.isAndroid();
  var isWindowsPhone = ionic.Platform.isWindowsPhone();
  var currentPlatform = ionic.Platform.platform();
  var currentPlatformVersion = ionic.Platform.version();
  ionic.Platform.exitApp(); // stops the app
}]);
var infomoduler = angular.module('InfoModuler', ['ngRoute','ui.bootstrap','ngTouch','ngAside','ngDialog','ng-bootstrap-datepicker','angular-loading-bar','infinite-scroll','ionic'])
.run(['$rootScope','$location','$ionicPlatform','$apply','$cordovaDevice', 
      function ($rootScope,$location,$ionicPlatform,$apply,$cordovaDevice) {
    $rootScope.appInitDone = false;
    $rootScope.currentPage = "home";
    $rootScope.loginStatus = 0;
    ionicPlatFormBuddy();
    function ionicPlatFormBuddy(){
    $ionicPlatform.ready(function() {
        $scope.$apply(function() {
            // sometimes binding does not work! :/
            // getting device infor from $cordovaDevice
            var device = $cordovaDevice.getDevice();
            debugger;
            console.log(device);
            $scope.manufacturer = device.manufacturer;
            $scope.model = device.model;
            $scope.platform = device.platform;
            $scope.uuid = device.uuid;
            console.log($scope.uuid);
        });
    });
    }
}]);

在模块中编写代码正确吗?请给我解决方案。。请

请添加这个插件

cordova plugin add org.apache.cordova.device

在您的任何控制器文件中添加以下代码行

控制器

$ionicPlatform.ready(function() {
     //find application version
     if (window.cordova) {
         var uuid = $cordovaDevice.getUUID();
         var cordova = $cordovaDevice.getCordova();
         var model = $cordovaDevice.getModel();
         var platform = $cordovaDevice.getPlatform();
         var platformVersion = $cordovaDevice.getVersion();
         var mobileDetails = {
             'uuid': uuid,
             'cordova': cordova,
             'model': model,
             'platform': platform,
             'platformVersion': platformVersion,
         };
         console.log('Mobile Phone details:', mobileDetails)
     }
 });

为了访问设备的详细信息,您需要安装设备插件(org.apache.codova.device)。

导航到您的ionic/codova项目(www所在的位置),然后键入以下命令。

cordova plugin add cordova-plugin-device

要获得更多关于ngCordova的详细信息,请查看此链接

注意,您需要将ngCordova插件添加到您的项目中。您可以从这里或通过bower:下载

bower install ngCordova

在您的代码中包括ngCordova脚本,例如

<script src="../js/ng-cordova.js"></script>