gloriaJun / til

Lessoned Learned
3 stars 0 forks source link

browser version check #89

Open gloriaJun opened 3 years ago

gloriaJun commented 3 years ago
(function() {
  var OS = 'android';
  var WEBVIEW = 'Chrome';
  var MINIMUM_SUPPORTED_VERSION = 60;

  var userAgent = navigator.userAgent;
  var appVersion = navigator.appVersion;
  var dataString = userAgent || appVersion;

  console.log('###### Webview Version Check START ######');
  console.log('- userAgent : ', userAgent);
  console.log('- appVersion : ', appVersion);

  function isAndroid() {
    var osRegExp = new RegExp(OS, 'i');
    return osRegExp.test(userAgent);
  }

  function getWebViewInfo() {
    // var versionStringRegExp = new RegExp(`(?<webview>${WEBVIEW})\\/(?<version>[\\d\\.]+)\\s`);
    var versionStringRegExp = new RegExp(`(${WEBVIEW})\\/([\\d\\.]+)\\s`);
    var result = dataString.match(versionStringRegExp);

    console.log('- result : ', result);
    if (!result || !result[2]) return;

    // ex) result[0] : Chrome/46.0.23, result[1] : Chrome, result[2] : 46.0.23
    return {
      webview: result[1],
      version: result[2],
    };
  }

  console.log('- isAndroid : ', isAndroid());

  if (isAndroid()) {
    var info = getWebViewInfo();
    console.log('- webview : ', info.webview, ', version : ', info.version);

    if (parseFloat(info.version) < MINIMUM_SUPPORTED_VERSION) {
      console.error(
        `Not Supported Webview version, redirect error page. [detected version : ${info.webview} ${info.version}]`
      );
      window.location.replace('/unsupportedVersion.html');
    }
  }

  console.log('###### Webview Version Check END ######');
})();