适用于iOS 12 Safari的私密/隐身模式检测

时间:2018-10-11 11:43:48

标签: javascript ios mobile-safari mobile-chrome incognito-mode

似乎适用于iOS 11和相应Safari版本的旧检测方法不再起作用。
我已经尝试过以下脚本:https://gist.github.com/cou929/7973956
但这不适用于iOS 12上的野生动物园,也不适用于iOS 12上的Chrome69。

这个非常新的库也不适用于iOS 12浏览器:
https://github.com/Maykonn/js-detect-incognito-private-browsing-paywall

那么iOS 12浏览器有什么解决方案吗?

BostonGlobe似乎有解决方案,但我不知道他们是如何做到的:
https://www.bostonglobe.com/sports/redsox/2018/10/09/redsox/D66J59viZ1qxyZlhI18l8L/story.html (如果您想以隐身/私人模式阅读BostonGlobe.com文章,则会显示一个屏幕,要求您登录)

2 个答案:

答案 0 :(得分:2)

Chrome Devtools =>用于检测隐身/私人模式的模​​块称为{<1>}

中的“ 检测-私人浏览
webpack:///./~/detect-private-browsing/index.js

答案 1 :(得分:1)

//FOR IOS 12
var e = false;
if (window.localStorage && /Safari/.test(window.navigator.userAgent)) {
  if (window.safariIncognito) {
    e = true;
  } else {
    try {
      window.openDatabase(null, null, null, null);
      window.localStorage.setItem("test", 1)
    } catch (t) {
      e = true;
      alert("PRIVATE");
    }
  }
  void !e && (e = !1, window.localStorage.removeItem("test"))
}
相关问题