平台偵測

內置了一個 Helpers 來偵測平台(和它的 capabilities ).其具體使用如下:

// For usage inside a Vue component JS:
this.$q.platform.is.mobile

// or usage inside a Vue component template:
$q.platform.is.cordova

// Only for usage outside a Vue component you need to import it:
import { Platform } from 'quasar'
1
2
3
4
5
6
7
8
屬性類型意義
Platform.is.mobileboolean偵測程式碼是否在mobile上執行
Platform.is.cordovaboolean偵測程式碼是否在Cordova上執行
Platform.is.desktopboolean程式碼是否在desktop上執行
Platform.is.chromeExtboolean程式碼是否在Chrome外掛環境上執行
Platform.has.touchboolean程式碼是否在可觸控螢幕上執行
Platform.within.iframebooleanApp是否在IFRAME下執行

注意

在mobile上執行意味著你可以讓這段程式碼在mobile device(手機或平板)上執行,但不能在瀏覽器上,也不能在Cordova wrapper上執行。

其他 Platform.is 的具體屬性還包括有: android , blackberry , cros , ios , ipad , iphone , ipod , kindle , linux , mac , playbook , silk , chrome , opera , safari , win(Windows) , winphone(Windows Phone)和很多很多 ...

以在Linux機器上執行Chrome為例:

// Describing Platform.is
{
  chrome: true,
  desktop: true,
  linux: true,
  name: "chrome",
  platform: "linux",
  version: "47.0.2526.80",
  versionNumber: 47,
  webkit: true
}
1
2
3
4
5
6
7
8
9
10
11

使用

我們現在有一個需求是:需要根據程式碼運行在不同的設備上,提供不同的元件或 DOM 元素。有些東西我們只想展示在 desktop ,而在 mobile 則是展示另外一些。我們可以這樣寫:

<div v-if="$q.platform.is.desktop">
  I'm only rendered on desktop!
</div>

<div v-if="$q.platform.is.mobile">
  I'm only rendered on mobile!
</div>
1
2
3
4
5
6
7

注意

你可能會想要通過只使用css的方式來達成你的需求,那你可以查看這頁