【问题标题】:How to detect mobile device如何检测移动设备
【发布时间】:2015-01-06 08:13:21
【问题描述】:

我正在使用 ionic 框架构建一个移动网站。我想用 AngularJS(或 ionic)检测移动设备(Android 和 iOS)。

如果访问设备是Android → #/android 如果访问设备是 iOS → #/ios

controllers.js

function uaCtrl('$scope', '$location', ($scope, $location) {
$scope = function () {
  var isMobile = {
    Android: function() {
      return navigator.userAgent.match(/Android/i);
    },
    iOS: function() {
      return navigator.userAgent.match(/iPhone | iPad | iPod/i)
    }
  }

  if(isMobile.Android()) {
    $location.path('#/android');
  }else if(isMobile.iOS()) {
    $location.path('#/ios');
  }else{
    $location.path('#/ios');
  }

};

};

app.js

.config(function($stateProvider, $urlRouterProvider) {
  $urlRouterProvider.otherwise('/dash');

  $stateProvider

  .state('home', {
      url: '/dash',
      templateUrl: 'templates/dash.html'
    })

  .state('android-home', {
    url: '/android',
    templateUrl:'templates/dash-android.html'
  })

  .state('ios-home', {
    url: '/ios',
    templateUrl:'templates/dash-ios.html'
  })
});

dash.html

<ion-view hide-nav-bar="true" ng-controller="uaCtrl">
    ?????
</ion-view>

【问题讨论】:

标签: android ios angularjs ionic-framework device-detection


【解决方案1】:

ionic.Platform.isIOS() 我相信这就是你要找的。

平台文档: http://ionicframework.com/docs/api/utility/ionic.Platform/

这是单元测试: https://github.com/driftyco/ionic/blob/master/test/unit/angular/service/platform.unit.js

但是,如果您不必这样做,我不建议您使用不同的标记结构。相反,如果您有不同的样式,具体取决于平台,Ionic 会将 platform-android 或 platform-ios 放在 body 标记类中,因此您可以执行以下操作:

.platform-android h1 { color: green; }

【讨论】:

  • 这很简单。谢谢你:)
  • @adam 我可以检查设备是平板电脑还是安卓和 ios 手机?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-09-06
  • 2010-11-20
  • 2021-04-14
  • 1970-01-01
  • 1970-01-01
  • 2021-08-30
相关资源
最近更新 更多