Как сделать это с помощью PHP и отфильтровать ложные срабатывания
Я думаю, что ответ @strat в правильном направлении, если вы хотите использовать PHP. За исключением того, что он не будет работать, если не настроена мета для мобильных приложений. В противном случае iPhone разместит в доме закладку, открывающую мобильное сафари.
Кроме того, он возвращает ложные срабатывания, например, при доступе к странице из любого другого браузера на iPhone, например браузера Facebook.
К счастью, у отдельной строки пользовательского агента есть особенность: в ней всего 3 косых черты. Я тестировал различные другие браузеры, и у них всех их более 3. Это хакерское решение, но мы можем использовать это в наших интересах. Также интересно отметить, что стандартное веб-представление в приложении будет иметь две косые черты.
Итак, это минимальный рабочий пример:
<?php
// We need to add the mobile web app capable meta. Status bar is set to black to avoid our text go under the status bar.
?>
<html>
<head>
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
</head>
<body>
<?php
$ua = strtolower($_SERVER['HTTP_USER_AGENT']);
if ( strpos($ua,"iphone") || strpos($ua,"ipad") ) {
if ( strpos($ua,"safari") ) {
echo('Running in safari on iPhone/iPad');
} else if ( substr_count($ua, '/') === 3 ) {
echo('Running as stand alone WebApp on iPhone/iPad');
} else if ( substr_count($ua, '/') === 2 ) {
echo('Running in a WebView on a iPhone/iPad app');
} else {
echo('Running in another browser on iPhone/iPad');
}
} else {
echo('Running on device other than iPhone/iPad.');
}
?>
</body>
</html>