32 lines
2.7 KiB
JavaScript
32 lines
2.7 KiB
JavaScript
/**
|
|
* isMobile.js v0.3.9
|
|
*
|
|
* A simple library to detect Apple phones and tablets,
|
|
* Android phones and tablets, other mobile devices (like blackberry, mini-opera and windows phone),
|
|
* and any kind of seven inch device, via user agent sniffing.
|
|
*
|
|
* @author: Kai Mallea (kmallea@gmail.com)
|
|
*
|
|
* @license: http://creativecommons.org/publicdomain/zero/1.0/
|
|
*/
|
|
!function(a){var b=/iPhone/i,c=/iPod/i,d=/iPad/i,e=/(?=.*\bAndroid\b)(?=.*\bMobile\b)/i,// Match 'Android' AND 'Mobile'
|
|
f=/Android/i,g=/(?=.*\bAndroid\b)(?=.*\bSD4930UR\b)/i,h=/(?=.*\bAndroid\b)(?=.*\b(?:KFOT|KFTT|KFJWI|KFJWA|KFSOWI|KFTHWI|KFTHWA|KFAPWI|KFAPWA|KFARWI|KFASWI|KFSAWI|KFSAWA)\b)/i,i=/IEMobile/i,j=/(?=.*\bWindows\b)(?=.*\bARM\b)/i,// Match 'Windows' AND 'ARM'
|
|
k=/BlackBerry/i,l=/BB10/i,m=/Opera Mini/i,n=/(CriOS|Chrome)(?=.*\bMobile\b)/i,o=/(?=.*\bFirefox\b)(?=.*\bMobile\b)/i,// Match 'Firefox' AND 'Mobile'
|
|
p=new RegExp("(?:Nexus 7|BNTV250|Kindle Fire|Silk|GT-P1000)",// End non-capturing group
|
|
"i"),q=function(a,b){return a.test(b)},r=function(a){var r=a||navigator.userAgent,s=r.split("[FBAN");
|
|
// excludes 'other' devices and ipods, targeting touchscreen phones
|
|
// excludes 7 inch devices, classifying as phone or tablet is left to the user
|
|
return"undefined"!=typeof s[1]&&(r=s[0]),this.apple={phone:q(b,r),ipod:q(c,r),tablet:!q(b,r)&&q(d,r),device:q(b,r)||q(c,r)||q(d,r)},this.amazon={phone:q(g,r),tablet:!q(g,r)&&q(h,r),device:q(g,r)||q(h,r)},this.android={phone:q(g,r)||q(e,r),tablet:!q(g,r)&&!q(e,r)&&(q(h,r)||q(f,r)),device:q(g,r)||q(h,r)||q(e,r)||q(f,r)},this.windows={phone:q(i,r),tablet:q(j,r),device:q(i,r)||q(j,r)},this.other={blackberry:q(k,r),blackberry10:q(l,r),opera:q(m,r),firefox:q(o,r),chrome:q(n,r),device:q(k,r)||q(l,r)||q(m,r)||q(o,r)||q(n,r)},this.seven_inch=q(p,r),this.any=this.apple.device||this.android.device||this.windows.device||this.other.device||this.seven_inch,this.phone=this.apple.phone||this.android.phone||this.windows.phone,this.tablet=this.apple.tablet||this.android.tablet||this.windows.tablet,"undefined"==typeof window?this:void 0},s=function(){var a=new r;return a.Class=r,a};"undefined"!=typeof module&&module.exports&&"undefined"==typeof window?
|
|
//node
|
|
module.exports=r:"undefined"!=typeof module&&module.exports&&"undefined"!=typeof window?
|
|
//browserify
|
|
module.exports=s():"function"==typeof define&&define.amd?
|
|
//AMD
|
|
define("isMobile",[],a.isMobile=s()):a.isMobile=s()}(this),/**
|
|
* angular-ismobile by Ronny Haase <ronhaase@gmail.com>
|
|
*
|
|
* Licensed under CC0 1.0 Universal (CC0 1.0)
|
|
*
|
|
* https://github.com/ronnyhaase/angular-ismobile
|
|
*/
|
|
function(){"use strict";angular.module("ismobile",[]),angular.module("ismobile").provider("isMobile",["$windowProvider",function(a){var b=a.$get();angular.merge(this,b.isMobile),this.$get=[function(){return angular.copy(b.isMobile)}]}])}();
|