如何检测移动设备

0 android device-detection ios angularjs ionic-framework

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

\n\n

如果访问设备是Android \xe2\x86\x92 #/android\n如果访问设备是iOS \xe2\x86\x92 #/ios

\n\n

控制器.js

\n\n
function uaCtrl(\'$scope\', \'$location\', ($scope, $location) {\n$scope = function () {\n  var isMobile = {\n    Android: function() {\n      return navigator.userAgent.match(/Android/i);\n    },\n    iOS: function() {\n      return navigator.userAgent.match(/iPhone | iPad | iPod/i)\n    }\n  }\n\n  if(isMobile.Android()) {\n    $location.path(\'#/android\');\n  }else if(isMobile.iOS()) {\n    $location.path(\'#/ios\');\n  }else{\n    $location.path(\'#/ios\');\n  }\n\n};\n
Run Code Online (Sandbox Code Playgroud)\n\n

};

\n\n

应用程序.js

\n\n
.config(function($stateProvider, $urlRouterProvider) {\n  $urlRouterProvider.otherwise(\'/dash\');\n\n  $stateProvider\n\n  .state(\'home\', {\n      url: \'/dash\',\n      templateUrl: \'templates/dash.html\'\n    })\n\n  .state(\'android-home\', {\n    url: \'/android\',\n    templateUrl:\'templates/dash-android.html\'\n  })\n\n  .state(\'ios-home\', {\n    url: \'/ios\',\n    templateUrl:\'templates/dash-ios.html\'\n  })\n});\n
Run Code Online (Sandbox Code Playgroud)\n\n

破折号.html

\n\n
<ion-view hide-nav-bar="true" ng-controller="uaCtrl">\n    ?????\n</ion-view>\n
Run Code Online (Sandbox Code Playgroud)\n

ada*_*dam 5

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-androidplatform-iosbody 标记类有不同的样式,那么您可以执行以下操作:

.platform-android h1 { color: green; }