在 <body> iOS 7 上的 "capable" Web 应用程序中向 if 添加一个类



我正在使用AngularJS和Ionic框架为iOS 7开发一个网络应用程序。只有当页面从added to home web应用程序加载时,我才会向body DOM元素添加一个类(我将其设置为apple mobile web app enable yes)。

我正试图用这种方式来做:在头的末尾添加这个javascript

if(("standalone" in window.navigator) && window.navigator.standalone){
  $(".body").addClass("platform-ios7")
}

但它不起作用。最好的方法是什么?我知道AngularJS有ng sstyle、表达式和过滤器,有可能用angular实现这一点吗?

提前感谢:)

如果你不需要知道它是否是应用程序代码中任何地方的IOS主屏幕(因此不在任何控制器或服务中),并且你纯粹是出于CSS的原因想要这个类,那么我认为可以使用一个小的自定义指令。

app.directive('iosDetect', function($window) {
  return {
    link: function (scope, iElement, iAttrs, controller, transcludeFn) {
      if(('standalone' in $window.navigator) && $window.navigator.standalone) {
        iElement.addClass('platform-ios7');
      }
    }
  };
});

然后你可以在身体元素(或者,实际上任何元素)上使用:

<body ios-detect>

你可以看到下面的plunkr作为一个例子

http://plnkr.co/edit/zCPOUSLeykjsCmsfuxtR?p=preview

最新更新