无法在Ionic / Cordova App上显示设备信息

时间:2016-02-22 10:59:37

标签: cordova ionic-framework cordova-plugins

我有一个Ionic应用程序,我正在尝试在我的视图中显示设备信息。

代码(coffeeScript):

angular.module('hgApp', ['ionic'])
 .run(($ionicPlatform, $rootScope) ->
 aboutPageFunction($rootScope)
 $ionicPlatform.ready ->
deviceInformation = ionic.Platform.device()
console.log(deviceInformation)
  if window.cordova and window.cordova.plugins.Keyboard
    cordova.plugins.Keyboard.hideKeyboardAccessoryBar true
    cordova.plugins.Keyboard.disableScroll true
  if window.StatusBar
    StatusBar.styleDefault()
  return
 return
).config [
'$stateProvider'
'$urlRouterProvider'
($stateProvider, $urlRouterProvider) ->
$stateProvider.state('app',
  url: '/app'
  abstract: true
  templateUrl: './sections/menu/menu.tpl.html'
  controller: 'roomList'
).state('app.myHouse',
  url: '/myHouse'
  views:
    'menuContent':
      templateUrl: './sections/myHouse/myHouse.tpl.html'
)
# if none of the above states are matched, use this as the fallback
$urlRouterProvider.otherwise 'app/myHouse'
return
]

aboutPageFunction = ($rootScope) ->
 device = ionic.Platform.device()
 $rootScope.currentPlatform = ionic.Platform.platform()
 $rootScope.currentPlatformVersion = ionic.Platform.version()
 $rootScope.manufacturer = device.manufacturer
 return

模板视图

<ion-view view-title="About">
 <ion-content>
         <span>Manufacturer:>{{manufacturer}}</p></span>
        <span>Current platform:>{{currentPlatform}}</p></span>
        <span>Current platform version:>{{currentPlatformVersion}}</p></span>
 </ion-content>
</ion-view view-title="About">

我正在使用Chrome来设置Google Nexus 5&#39;设备使用浏览器中的工具。

当我刷新页面时,它不显示制造商,但它显示后两个变量,如下所示:

Manufacturer:
Current platform: android
Current platform version: 6

为什么设备对象没有显示制造商信息?

- 注意 - 当我在ready()中的console.log($ ionicPlatform)时,我得到一个有效的对象,但没有看到任何设备。

2 个答案:

答案 0 :(得分:1)

您可以使用cordova-plugin-device获取设备的硬件和软件详细信息。

document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
    console.log(device);
}

属性设备对象:

device.cordova
device.model
device.platform
device.uuid
device.version
device.manufacturer
device.isVirtual
device.serial

更新

$ionicPlatform.ready在设备准备就绪时执行回调,因此您实际上不需要添加deviceready事件侦听器:

angular.module('hgApp', ['ionic'])
 .run(($ionicPlatform, $rootScope) ->
 aboutPageFunction($rootScope)
 $ionicPlatform.ready ->

  if window.device
    console.log(device)

  if window.cordova and window.cordova.plugins.Keyboard
    cordova.plugins.Keyboard.hideKeyboardAccessoryBar true
    cordova.plugins.Keyboard.disableScroll true
  if window.StatusBar
    StatusBar.styleDefault()
  return
 return
)

答案 1 :(得分:1)

只是为那些寻找这个答案的人写得更简洁:

1。)确保已安装cordova-plugin-device,您可以在配置文件中查看此内容,也可以运行cordova plugin ls

2。)用户(和我)试图将设备对象引用为ionic.Platform.device(),这就是它在此链接中的显示方式:http://ionicframework.com/docs/v1/api/utility/ionic.Platform/。 但是,如果您安装了上述插件,那么您正在寻找的设备信息实际上位于window.device,如果没有本地device变量,则只是device

希望这有帮助。