A 3,5kb standalone and dependency-free library that seemsly identifies the platform that your web app is running on.
You can read this documentation in: PortuguΓͺs Brasileiro.
Disclaimer: it was borrowed from Quasar Framework and adapted to work as standalone library.
import platform from '@danielpiva/platform/dist';
// Then you're good to go
console.log(platform.is.android);<script src="https://unpkg.com/@danielpiva/platform@latest/dist/platform.min.js"></script>
<!-- π Or you can just download the source code and host yourself -->
<script src="/path/to/@danielpiva/platform/dist/platform.min.js"></script>
<script>
  // Then you're good to go
  console.log(platform.is.android);
</script>Note The only original feature missing is the parseSRR() method.
| Property | Type | Meaning | 
|---|---|---|
platform.is.mobile | 
Boolean | 
Is the code running on a mobile device? | 
platform.is.cordova | 
Boolean | 
Is the code running within Cordova? | 
platform.is.electron | 
Boolean | 
Is the code running within Electron? | 
platform.is.desktop | 
Boolean | 
Is the code running on a desktop browser? | 
platform.is.chromeExt | 
Boolean | 
Is the code running is a Chrome extension environment? | 
platform.has.touch | 
Boolean | 
Is the code running on a touch capable screen? | 
platform.within.iframe | 
Boolean | 
Is the App running within an IFRAME? | 
Note Running on mobile means you can have this code running on a mobile device (phone or tablet) but with a browser, not within a Cordova wrapper.
The platform.is object may have different properties based on the environment your web app is running on, such as:
| Property | 
|---|
platform.is.ios | 
platform.is.android | 
platform.is.ipad | 
platform.is.ipod | 
platform.is.iphone | 
platform.is.chrome | 
platform.is.safari | 
platform.is.opera | 
platform.is.mac | 
platform.is.win (Windows) | 
platform.is.linux | 
platform.is.cros | 
platform.is.silk | 
platform.is.kindle | 
platform.is.blackberry | 
platform.is.playbook | 
platform.is.winphone (Windows Phone) | 
| And so on... | 
Example when running Chrome on a Linux desktop machine:
// platform.is
{
  chrome: true,
  desktop: true,
  linux: true,
  name: "chrome",
  platform: "linux",
  version: "47.0.2526.80",
  versionNumber: 47,
  webkit: true
}@danielpiva/platform also works as Vue plugin out of the box.
import Vue from 'vue';
import platform from 'platform';
Vue.use(platform);
new Vue({
  el: '#app',
  mounted() {
    // You may call this.$platform from anywhere inside of your component instances
    console.log(this.$platform);
  }
});<script src="https://unpkg.com/vue@latest"></script>
<script src="https://unpkg.com/@danielpiva/platform@latest/dist/platform.min.js"></script>
<script>
  Vue.use(platform);
  new Vue({
    el: '#app',
    mounted() {
    // You may call this.$platform from anywhere inside of your component instances
    console.log(this.$platform);
  }
  });
</script>Anyone is welcome to suggest features, fix bugs by opening an issue or forking and submitting a pull request.
Daniel Piva | imdanielpiva@gmail.com