如何解决在具有MDM限制的iPad上,window.navigator属性返回null
我正在尝试检测客户端是否是iPad,为此,我尝试使用window.navigator.platform
和window.navigator.maxTouchPoints
。
我正在尝试通过将Vue设置为计算属性来实现这一点。
我要测试的一个设备是MDM设备,运行最新iOS并使用Safari作为浏览器的iPad。
这是我的计算属性:
// ...
computed: {
isIpad() {
return navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 0;
}
}
这是视图:
<div class="feature">
<div v-if="isIpad" class="feature-desktop">This feature is only available on desktops.</div>
</div>
在我的MacOS / Firefox上的Vue检查器中,计算出的属性是正确的,按预期返回false
。当我尝试通过Firefox模拟iPad时,它会按预期返回true
。但是,如果我在启用MDM的iPad上使用Safari打开页面,则此属性返回false
。
遗憾的是,由于iPad被锁定,我无法连接开发人员工具,但是我可以手动在页面上放置javascript以打印出navigator.platform
和navigator.maxTouchPoints
的结果,并且它们会返回预期的MacIntel
平台和5
接触点。
<script type="application/javascript">
document.getElementById('app').innerHTML = navigator.platform + ' ' + navigator.maxTouchPoints; // Prints MacIntel and 5
</script>
有人对这种事情有经验吗?我尚未尝试通过data
设置mounted()
属性。
解决方法
使用mounted
事件处理程序设置data
属性解决了我的问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。