sniff.js 1021 B

12345678910111213141516171819202122232425262728293031
  1. define("dojox/mobile/sniff", [
  2. "dojo/_base/window",
  3. "dojo/_base/sniff"
  4. ], function(win, has){
  5. var ua = navigator.userAgent;
  6. // BlackBerry (OS 6 or later only)
  7. has.add("bb", ua.indexOf("BlackBerry") >= 0 && parseFloat(ua.split("Version/")[1]) || undefined, undefined, true);
  8. // Android
  9. has.add("android", parseFloat(ua.split("Android ")[1]) || undefined, undefined, true);
  10. // iPhone, iPod, or iPad
  11. // If iPod or iPad is detected, in addition to has("ipod") or has("ipad"),
  12. // has("iphone") will also have iOS version number.
  13. if(ua.match(/(iPhone|iPod|iPad)/)){
  14. var p = RegExp.$1.replace(/P/, 'p');
  15. var v = ua.match(/OS ([\d_]+)/) ? RegExp.$1 : "1";
  16. var os = parseFloat(v.replace(/_/, '.').replace(/_/g, ''));
  17. has.add(p, os, undefined, true);
  18. has.add("iphone", os, undefined, true);
  19. }
  20. if(has("webkit")){
  21. has.add("touch", (typeof win.doc.documentElement.ontouchstart != "undefined" &&
  22. navigator.appVersion.indexOf("Mobile") != -1) || !!has("android"), undefined, true);
  23. }
  24. return has;
  25. });