在独立模式下检测来自PWA的请求

时间:2019-12-04 11:35:58

标签: progressive-web-apps

我尝试通过更改页面上的所有链接以在独立模式下添加查询参数来实现PWA服务器端检测。像这样:

  if (window.matchMedia('(display-mode: standalone)').matches) {
    // @todo: this code breaks ios app.
    $('a').each(function() {
      var href = $(this).attr('href');
      href += (href.match(/\?/) ? '&' : '?') + 'mode=pwa';
      $(this).attr('href', href);
    });
  }

这似乎在Android设备上可以正常工作,但是由于某些原因,导致iOS设备上的JS中断。有谁知道为什么此代码在iOS上不起作用?还是有更好的方法?

谢谢乔

1 个答案:

答案 0 :(得分:0)

要使用Cookie来做到这一点:

// JS side.
      if (window.matchMedia('(display-mode: standalone)').matches) {
        document.cookie = 'deviceMode=pwa';
      }
      else {
        document.cookie = 'deviceMode=mobile';
      }   



// PHP Side.
  if ($_COOKIE['deviceMode'] == 'pwa') {
    // Do something.
  }
  elseif ($_COOKIE['deviceMode'] == 'mobile') {
    // Do something else.
  }
  else {
    // And something else.
  }