我正在使用离子框架构建移动网站。我想用AngularJS(或离子)检测移动设备(Android和iOS)。
如果访问设备是Android→#/ android 如果访问设备是iOS→#/ ios
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');
}
};
};
.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'
})
});
<ion-view hide-nav-bar="true" ng-controller="uaCtrl">
?????
</ion-view>
答案 0 :(得分:3)
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; }