检测iOS是否正在使用网络应用程序
Detect if iOS is using webapp
我想知道是否有可能检测到iOS用户正在使用网络应用程序,或者只是使用safari浏览器以正常方式访问。
我想实现的原因是,在iOS网络应用程序上,当用户点击链接时,他会被重定向到Safari浏览器。因此,我使用以下变通方法让他留在网络应用程序中(防止切换到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" );
}
);
但我希望这种变通方法只在用户使用网络应用程序时发生,我希望它对网络应用程序用户是有条件的。所以不是在默认的safari浏览器上。
您必须使用一些javascript:来检测
<script>
if (("standalone" in window.navigator) && // Check if "standalone" property exists
window.navigator.standalone){ // Test if using standalone navigator
// Web page is loaded via app mode (full-screen mode)
// (window.navigator.standalone is TRUE if user accesses website via App Mode)
} else {
// Web page is loaded via standard Safari mode
// (window.navigator.standalone is FALSE if user accesses website in standard safari)
}
</script>
</head>
现在需要额外的检查"standalone" in window.navigator
,因为有些浏览器没有standalone
属性,并且您不希望这些浏览器的代码崩溃。
iOS和Chrome WebApp的行为不同,这就是我得出以下结论的原因:
isInWebAppiOS = (window.navigator.standalone == true);
isInWebAppChrome = (window.matchMedia('(display-mode: standalone)').matches);
相关文章:
- 使用acess代币登录Facebook,并通过网络应用程序离线发布
- 链接两个网页或网络应用程序的最佳方式
- 如何减少在移动网络应用程序上播放声音的延迟
- 在Android网络应用程序中查找SD卡的路径
- 如何处理IOS网络应用程序中的空锚点
- 如何将某个“;函数“;在Node.js的网络应用程序中
- 独立离线的html5网络应用程序
- 如何使网络应用程序保留信息
- 使用谷歌应用程序脚本制作基于谷歌电子表格的带有列表框的网络应用程序
- 如何在网络应用程序中使用Firebase进行用户授权
- 如何退出全屏网络应用程序
- 从使用react路由器的网络应用程序解析物理URL
- 是否可以在第三方网站中嵌入谷歌网络应用程序
- 如何从我的机器提供HTML + JS + CSS网络应用程序,以便其他人可以查看它
- 地理位置不适用于苹果移动网络应用程序功能
- 移动网络应用程序:在多分辨率设备中使用同一组图像
- 网络应用程序的正确instagram身份验证方法(没有instagram帐户的用户)
- 检测网络应用程序是否已在安卓系统的主屏幕上添加书签
- 将类添加到<身体>如果在“;“有能力”;iOS 7上的网络应用程序
- 网络应用程序中绘制的谷歌柱状图错误