Automattic\WPSC\Device_Detection
User_Agent_Info::detect_blackberry_browser_version
Retrieve the blackberry browser version.
Return string are from the following list:
- blackberry-10
- blackberry-webkit
- blackberry-5
- blackberry-4.7
- blackberry-4.6
Method of the class: User_Agent_Info{}
No Hooks.
Returns
String. Type of the BB browser. If browser's version is not found, detect_blackbeberry_browser_version will return boolean false.
Usage
$result = User_Agent_Info::detect_blackberry_browser_version( $user_agent );
- $user_agent(string|null)
- User agent string to check. If not provided, uses $_SERVER['HTTP_USER_AGENT'].
Default:null
User_Agent_Info::detect_blackberry_browser_version() User Agent Info::detect blackberry browser version code WPSCache 3.1.0
public static function detect_blackberry_browser_version( $user_agent = null ) {
$user_agent = self::maybe_get_user_agent_from_server( $user_agent );
if ( empty( $user_agent ) ) {
return false;
}
$agent = strtolower( wp_unslash( $user_agent ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- This is validating.
if ( self::is_blackberry_10( $user_agent ) ) {
return 'blackberry-10';
}
$pos_blackberry = strpos( $agent, 'blackberry' );
if ( false === $pos_blackberry ) {
// Not a blackberry device.
return false;
}
$pos_webkit = strpos( $agent, 'webkit' );
if ( ! ( false === $pos_webkit ) ) {
return 'blackberry-webkit';
} else {
if ( ! preg_match( '#BlackBerry\w+\/([\d\.]+)#i', $agent, $matches ) ) {
return false; // not a BB device that match our rule.
}
$version_num = explode( '.', $matches[1] );
if ( count( $version_num ) <= 1 ) {
return false;
}
$version_num_major = (int) $version_num[0];
$version_num_minor = (int) $version_num[1];
if ( 5 === $version_num_major ) {
return 'blackberry-5';
} elseif ( 4 === $version_num_major && 7 === $version_num_minor ) {
return 'blackberry-4.7';
} elseif ( 4 === $version_num_major && 6 === $version_num_minor ) {
return 'blackberry-4.6';
} else {
// A very old BB device is found or this is a BB device that doesn't match our rules.
return false;
}
}
}