Device
Framework7 comes with Device detection library with which contains useful information about device and platform.
It is avaialable as a device property of Framework7 class (Framework7.device) and same property on initialized app instance (app.device):
// If we need it in place where we don't have access to app instance or before we init the app
if (Framework7.device.ios) {
console.log('It is iOS device');
}
// After we init the app we can access it as app instance property
var app = new Framework7({ /*...*/ });
if (app.device.android) {
console.log('It is android device');
}Methods & Properties
| Properties | |
|---|---|
| ios | true for iOS device |
| android | true for Android device |
| windowsPhone | true for Windows Phone device |
| desktop | true for desktop browser |
| iphone | true for iPhone |
| iphoneX | true for iPhone X |
| ipod | true for iPod |
| ipad | true for iPad |
| cordova | true when app running in cordova environment |
| phonegap | alias for cordova prop |
| windows | true for desktop windows |
| macos | true for desktop macOs |
| ie | true for Internet Explorer browser |
| edge | true for Edge browser |
| electron | true when app is running under Electron environment |
| webView | true if app runs in web view - webapp installed to home screen, valid for desktop PWAs installed to desktop |
| standalone | Same as webView |
| os | Contains OS can be ios, android or windowsPhone (for Windows Phone) |
| osVersion | Contains OS version, e.g. 11.2.0 |
| pixelRatio | Device pixel ratio |
| statusbar | true if app running in full-screen mode and requires Status Bar overlay |
| Methods | |
| needsStatusbarOverlay() | Returns true if app running in full-screen mode and requires Status Bar overlay |
| prefersColorScheme() | Returns pereferd user system color scheme. Returns "light" or "dark" where this feature supported or undefined otherwise. This feature support is based on (prefers-color-scheme) media query support. |
Device Related Classes
Also this Device detecting library adds additional classes on <html> element which can help you with different CSS styles for different OS and platforms.
So if you open app with iOS 7.1 device you may have the following classes:
<html class="ios device-ios device-ios-7 device-ios-7-1 device-ios-gt-6 device-pixel-ratio-1">
...If you open app with iOS 7.1 device with retina screen and your app running in full screen mode:
<html class="device-ios device-ios-7 device-ios-7-1 device-ios-gt-6 device-retina device-pixel-ratio-2 with-statusbar">
...If you open app on iPhone X and your app running in full screen mode:
<html class="device-ios device-iphone-x device-ios-11 device-ios-11-0 device-ios-gt-6 device-ios-gt-7 device-ios-gt-8 device-ios-gt-9 device-ios-gt-10 device-retina device-pixel-ratio-3 with-statusbar">
...If you open app with Android 4.4 device you will have the following classes:
<html class="device-android device-android-4 device-android-4-4">
...In other words classes calculated by the following rule:
device-[os]
device-[os major version]
device-[os full version]
[device-desktop]
[device-retina]
[device-iphone-x] - if it is iPhone X
[device-desktop]
[device-macos] - if desktop macOS device
[device-windows] - if desktop windows device
device-pixel-ratio-[pixel ratio]
[with-statusbar] - in case the app is running in full screen modeNote that "greater than" (ios-gt-6: for all iOS greater than iOS 6) classes available only for iOS