检测当前代码是 运行 作为应用程序还是作为网页

detecting if the current code is running as an app or as web page

我正在使用 ionic 开发混合应用程序。

大部分功能都适用于移动网络浏览器。因此最终产品也可以从 http 地址使用。但是有一些代码segments/features(比如振动、后台提醒)显然是针对应用程序版本的。这些功能将仅在应用程序版本上可用。

有什么 good/recommended 方法可以检测代码库中的当前情况,以便我可以执行诸如 if (isRunningAsApp) {do this} else {do that}* 之类的逻辑?

是否只是检查 window.location.href 并且如果您得到以 http: 开头的内容,那么它就是一个移动应用程序,否则它就是一个应用程序?

这是来自 Ionic 的 documentation

angular.module('PlatformApp', ['ionic']).controller('PlatformCtrl', function($scope) {

  ionic.Platform.ready(function(){
    // will execute when device is ready, or immediately if the device is already ready.
  });

  var deviceInformation = ionic.Platform.device();

  var isWebView = ionic.Platform.isWebView();
  var isIPad = ionic.Platform.isIPad();
  var isIOS = ionic.Platform.isIOS();
  var isAndroid = ionic.Platform.isAndroid();
  var isWindowsPhone = ionic.Platform.isWindowsPhone();

  var currentPlatform = ionic.Platform.platform();
  var currentPlatformVersion = ionic.Platform.version();

  ionic.Platform.exitApp(); // stops the app
});