Cách detect webview trong php



Bình Đặng Quốc / 19-11-2019

1/ Yêu cầu  và vấn đề của detect webview trong php

Yêu cầu: là nhận biết được website của mình được truy cập vào bằng loại thiết bị gì để có phương hướng xử lí cho phù hợp với từng loại thiết bị đó.

Vấn đề : trước đây thì chúng ta thường sử dụng USER_AGENT để nhận biết. Nhưng những phiên bản nâng cấp gần đây của IOS thì USER_AGENT  không còn chính xác nữa.

User agent trên cùng 1 thiết  iPad mini 2:

– Khi truy cập bằng web browser

User_agent: Mozilla/5.0 (iPad; CPU OS 12_4_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.2 Mobile/15E148 Safari/604.1

– Khi truy cập bằng webview

User_agent: Mozilla/5.0 (iPhone; CPU iPhone OS 9_0 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13A344 Safari/601.1

Hầu như nó đều giống nhau về các thuộc tính chỉ khác nhau về mặt các phiên bản nên chúng ta không thể dùng User agent để kiểm tra được.

2/ Code xử lí.

code :

 

if(isset($_SERVER[‘HTTP_REFERER’]))
{
$referer = $_SERVER[‘HTTP_REFERER’];
}

$user_agent = $_SERVER[‘HTTP_USER_AGENT’];
$check_wd = strpos($user_agent, ‘Windows’) ;
$check_ma = strpos($user_agent, ‘Macintosh’);
$check_re = strpos($referer, ‘google’) + strpos($referer, ‘yahoo’);
if ($check_wd > 0 || $check_ma > 0 || $check_re > 0)
{
$webview = false;
}
else
{
if($referer != ”)

{
$webview = false;
}
else
{
$webview = true;
}

}

Chúc các bạn thành công !!!


to-top