PHP 新的移动检测 iPadOS/iOS 13
PHP mobile detection with new iPadOS/iOS 13
我想知道是否有任何文档或任何新库可以检测到新的 iPadOS / iOS 13?
他们曾经输出:
mozilla/5.0 (ipad; cpu iphone os 12_1_3 like mac os x) applewebkit/605.1.15 (khtml, like gecko) version/12.0 mobile/15e148 safari/604.1
但是现在正在输出:
mozilla/5.0 (macintosh; intel mac os x 10_15) applewebkit/605.1.15 (khtml, like gecko) version/13.0.1 safari/605.1.15
有人遇到过这个吗?要使用任何新库吗?
我得到的最好的解决方案是使用 javascript:
// iPad check
if( (window.screen.height / window.screen.width == 1024 / 768) ||
(window.screen.height / window.screen.width == 1112 / 834) ||
(window.screen.height / window.screen.width == 1366 / 1024)
) {
// do stuff here
}
与之前预期的不同,但这是我拥有的最佳解决方案。
这是一个 php 解决方案,对我来说效果很好:
<?php
//Detect special conditions devices
$iPod = stripos($_SERVER['HTTP_USER_AGENT'],"iPod");
$iPhone = stripos($_SERVER['HTTP_USER_AGENT'],"iPhone");
$iPad = stripos($_SERVER['HTTP_USER_AGENT'],"iPad");
$iPadOS = stripos($_SERVER['HTTP_USER_AGENT'],"Macintosh");
$Android = stripos($_SERVER['HTTP_USER_AGENT'],"Android");
//TODO
if( $iPod || $iPhone || $iPad || $iPadOS || $Android){
//your methods
}
无法想出一个 php 的方法,但是对于 javascript 这似乎是最合适的
首先检测设备是否是移动设备。最近 iOS iPad,此检查 returns 错误,这实际上是错误的,但这是由于桌面用户代理。
第二次测试设备是否具有触摸属性并查看平台是否包含 'MacIntel' 字符串
let isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent);
let isIOSMobile = navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1;
if (!isMobile && isIOSMobile ) {
//Desktop mode on IPad detected
alert("For the best experience we recommend switching Safari view to mobile");
}
我想知道是否有任何文档或任何新库可以检测到新的 iPadOS / iOS 13?
他们曾经输出:
mozilla/5.0 (ipad; cpu iphone os 12_1_3 like mac os x) applewebkit/605.1.15 (khtml, like gecko) version/12.0 mobile/15e148 safari/604.1
但是现在正在输出:
mozilla/5.0 (macintosh; intel mac os x 10_15) applewebkit/605.1.15 (khtml, like gecko) version/13.0.1 safari/605.1.15
有人遇到过这个吗?要使用任何新库吗?
我得到的最好的解决方案是使用 javascript:
// iPad check
if( (window.screen.height / window.screen.width == 1024 / 768) ||
(window.screen.height / window.screen.width == 1112 / 834) ||
(window.screen.height / window.screen.width == 1366 / 1024)
) {
// do stuff here
}
与之前预期的不同,但这是我拥有的最佳解决方案。
这是一个 php 解决方案,对我来说效果很好:
<?php
//Detect special conditions devices
$iPod = stripos($_SERVER['HTTP_USER_AGENT'],"iPod");
$iPhone = stripos($_SERVER['HTTP_USER_AGENT'],"iPhone");
$iPad = stripos($_SERVER['HTTP_USER_AGENT'],"iPad");
$iPadOS = stripos($_SERVER['HTTP_USER_AGENT'],"Macintosh");
$Android = stripos($_SERVER['HTTP_USER_AGENT'],"Android");
//TODO
if( $iPod || $iPhone || $iPad || $iPadOS || $Android){
//your methods
}
无法想出一个 php 的方法,但是对于 javascript 这似乎是最合适的 首先检测设备是否是移动设备。最近 iOS iPad,此检查 returns 错误,这实际上是错误的,但这是由于桌面用户代理。 第二次测试设备是否具有触摸属性并查看平台是否包含 'MacIntel' 字符串
let isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent);
let isIOSMobile = navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1;
if (!isMobile && isIOSMobile ) {
//Desktop mode on IPad detected
alert("For the best experience we recommend switching Safari view to mobile");
}