Copy link to clipboard
Copied
Does somebody know the code to detect the Blackberry version with coldfusion?
First, i have code to detect if its a blackberry :
<cfif findNoCase('BlackBerry', CGI.HTTP_USER_AGENT)>
And if its a blackberry i need to detect the version of the OS because our mobile site only support version 4.5.0.127 and up. If the version is under that i have to redirect the user to another page to tell him that his OS version is not supported, they have to update there OS before using our mobile site.
Please HELP!!!
Copy link to clipboard
Copied
With JSP the code look like this and its working fine but i can't use JSP because our server do not support it.
if (request.getHeader("user-agent").matches("^BlackBerry[0-9]{0,6}.*") && !request.getHeader("user-agent").matches("^BlackBerry[0-9]{0,6}/(4\\.(5\\.(0\\.(1(2[7-9]|[3-9]{1}\\d{1})|[2-9]{1}\\d{2}){1}|[1-9]){1}|[6-9]|1[0-9]){1}|[5-9]|1[0-9]){1}.*") ) {
I can use javascript, but i go some syntax error :
<script language=javascript>
<!--
if((navigator.userAgent.match(/blackberry/i)) && !request.getHeader("user-agent").matches("^BlackBerry[0-9]{0,6}/(4\\.(5\\.(0\\.(1(2[7-9]|[3-9]{1}\\d{1})|[2-9]{1}\\d{2}){1}|[1-9]){1}|[6-9]|1[0-9]){1}|[5-9]|1[0-9]){1}.*") ) )
{
location.href='notcompatible.cfm';
}
-->
</script>
I would prefer to use coldfusion if possible because its our main language.
Thanks in advance for any help you can give to me
Copy link to clipboard
Copied
You might want to read this lot, detailing how CF implemented regexes, and which functions to use:
http://help.adobe.com/en_US/ColdFusion/9.0/Developing/WSc3ff6d0ea77859461172e0811cbec22c24-7a49.html
--
Adam
Copy link to clipboard
Copied
I already take a look at regular expression but I don't know how to code it to detect blackberry version....... do you know???
My CF code to detect if its a mobile looks like this, but how to detect the version of the BB oucccchhh :
cfif reFindNoCase("android|avantgo|blackberry|blazer|elaine|hiptop|ip(hone|od)|kindle|midp|mmp|mobile|o2|opera mini|palm( os)?|pda|plucker|pocket|psp|smartphone|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce; (iemobile|ppc)|xiino",CGI.HTTP_USER_AGENT) GT 0 OR reFindNoCase("1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|e\-|e\/|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|xda(\-|2|g)|yas\-|your|zeto|zte\-",Left(CGI.HTTP_USER_AGENT,4)) GT 0>
Copy link to clipboard
Copied
Wow. I'm @ the pub (mate is off getting a pint, so being a geek & checking email) so am not gonna pore over that regex but it seems unnecessarily complicated. Don't try to match •every• client agent string, just match the pattern of the BlackBerry ones. One can use wild cards to match the sequences of chars that are irrelevant to what you need to extract: you don't need to match every possibility.
Here's my pint.
--
Adam
Copy link to clipboard
Copied
Got to agree that looks unnecessarily complicated.
I don't know how the line would appear from a BlackBerry, but take for example a Firefox one:
<cfset Str = "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6" />
<cfif findNoCase("Firefox", Str) >
<!--- At this point we know it's Firefox --->
<!--- Strip out everything before the "Firefox" string to get the version --->
<cfset FFVersion = ReReplaceNoCase(Str, ".*Firefox\/", "") />
<!--- FFVersion = "3.6.6" --->
<cfset FFMajor = listFirst(FFVersion, '.') /> <!--- 3 --->
<cfset FFMinor = listGetAt(FFVersion, 2, '.') /> <!--- 6 --->
<cfset FFRelease = listLast(FFVersion, '.') /> <!--- 6 --->
</cfif>
At this point, you've now got variables in hand on which to perform all your business logic as to what versions are supported, however you choose to do that. You might want to wrap it all in a try/catch in case the format changes in future releases of the BB browser.
It's 8:06am, and my pint still isn't here yet. Jealous.
Copy link to clipboard
Copied
It's 8:06am, and my pint still isn't here yet. Jealous.
Strangely, the appeal of having a pint has now somewhat diminished for me this morning. I can't quite put my finger on what it might be.
That'll learn me for going out on a school night.
--
Adam
Copy link to clipboard
Copied
Rubbish, hair of the dog an' all that The best thing about drinking as soon as you get into the office is you've got eight hours to sober up before you have to drive home.
Copy link to clipboard
Copied
Surely you mean driving to the pub?
--
Adam
Copy link to clipboard
Copied
Here is what i finaly use.. quite simple........
<cfset a = '#mid(CGI.http_user_agent,16,3)#'>
<cfif #a# LTE 4.5>
Not supported
</cfif>
Forget about regular expression and don't drink and drive..............