get-browser.js 911 B

1234567891011121314151617181920212223242526272829
  1. import { getWindow } from 'ssr-window';
  2. let browser;
  3. function calcBrowser() {
  4. const window = getWindow();
  5. let needPerspectiveFix = false;
  6. function isSafari() {
  7. const ua = window.navigator.userAgent.toLowerCase();
  8. return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;
  9. }
  10. if (isSafari()) {
  11. const ua = String(window.navigator.userAgent);
  12. if (ua.includes('Version/')) {
  13. const [major, minor] = ua.split('Version/')[1].split(' ')[0].split('.').map(num => Number(num));
  14. needPerspectiveFix = major < 16 || major === 16 && minor < 2;
  15. }
  16. }
  17. return {
  18. isSafari: needPerspectiveFix || isSafari(),
  19. needPerspectiveFix,
  20. isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)
  21. };
  22. }
  23. function getBrowser() {
  24. if (!browser) {
  25. browser = calcBrowser();
  26. }
  27. return browser;
  28. }
  29. export { getBrowser };