我想知道是否有可能检测到iOS用户是使用网络应用程序,还是仅仅使用safari浏览器访问正常方式。
我想要实现的原因是,当用户点击链接时,在iOS webapp上,他将被重定向到Safari浏览器。所以我使用以下解决方法让他留在webapp(阻止切换到safari浏览器)。
$( document ).on("click",".nav ul li a",
function( event ){
// Stop the default behavior of the browser, which
// is to change the URL of the page.
event.preventDefault();
// Manually change the location of the page to stay in
// "Standalone" mode and change the URL at the same time.
location.href = $( event.target ).attr( "href" );
}
);
但我希望这种解决方法仅在用户使用webapp时发生,我希望它是webapp用户的条件。所以不在默认的safari浏览器上。
答案 0 :(得分:25)
您必须使用一些javascript检测到这一点:
<script>
if (
("standalone" in window.navigator) && // Check if "standalone" property exists
!window.navigator.standalone // Test if using standalone navigator
){
// .... code here ....
}
</script>
</head>
可在此处找到:Determine if site is open as web app or through regular safari on ipad?
答案中使用的来源是THIS。
答案 1 :(得分:8)
iOS和Chrome WebApp的行为不同,这就是我接下来的原因:
isInWebAppiOS = (window.navigator.standalone == true);
isInWebAppChrome = (window.matchMedia('(display-mode: standalone)').matches);