0% found this document useful (1 vote)
1K views23 pages

UCBrowser User Agent en

1. The document provides specifications for UC Browser's User-Agent (UA) and X-UCBrowser-UA on different platforms like Android, iPhone, iPad, Windows Phone, Symbian, and Java. 2. It describes how websites can identify whether a user is using UC Browser or not and whether the UC Browser speed mode is turned on or off by checking fields in the UA. 3. The document also includes UC Browser UA formats, field definitions, and how to handle differences between new and old UAs. It aims to unify UC Browser UA standards across platforms.

Uploaded by

Gennaro Scala
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (1 vote)
1K views23 pages

UCBrowser User Agent en

1. The document provides specifications for UC Browser's User-Agent (UA) and X-UCBrowser-UA on different platforms like Android, iPhone, iPad, Windows Phone, Symbian, and Java. 2. It describes how websites can identify whether a user is using UC Browser or not and whether the UC Browser speed mode is turned on or off by checking fields in the UA. 3. The document also includes UC Browser UA formats, field definitions, and how to handle differences between new and old UAs. It aims to unify UC Browser UA standards across platforms.

Uploaded by

Gennaro Scala
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 23

User-Agent and X-UCBrowser-UA Specification of UC Browser

UC

Contents
1 OBJECTIVE AND BACKGROUND --------------------------------------------------------------------------------------------- 2 2 READING GUIDE ---------------------------------------------------------------------------------------------------------------- 3 3 CLIENT-SERVER MODEL ------------------------------------------------------------------------------------------------------ 3 4 USER-AGENT ON DIFFERENT PLATFORMS -------------------------------------------------------------------------------- 4 4.1 Android -------------------------------------------------------------------------------------------------------------------- 4 4.2 iPhone platform ---------------------------------------------------------------------------------------------------------- 5 4.3 iPad platform ------------------------------------------------------------------------------------------------------------- 5 4.4 WP platform -------------------------------------------------------------------------------------------------------------- 5 4.5 Symbian-------------------------------------------------------------------------------------------------------------------- 5 4.6 Java ------------------------------------------------------------------------------------------------------------------------- 5 5 COMMON QUESTIONS AND ANSWERS ------------------------------------------------------------------------------------- 6 5.1 How do websites judge the on-off state of the UC Browser speed mode through UA? ----------------- 6 5.2 How do websites judge via UA whether a visitor is visiting them with UC Browser or not? ---------- 7 6 UC BROWSER USER-AGENT STANDARD SPECIFIC DEFINITION (NON-DEVELOPERS CAN SKIM THE FOLLOWING CHAPTERS) --------------------------------------------------------------------------------------------------------- 7 6.1 UC Browser User-Agent format ------------------------------------------------------------------------------------- 7 6.2 UC Browser User-Agent fields specification---------------------------------------------------------------------- 7 7 UC BROWSER X-UCBROWSER-UASTANDARD SPECIFIC DEFINITION --------------------------------------------- 9 8 X-UCBROWSER-UA DETAILS ON DIFFERENT PLATFORMS --------------------------------------------------------- 13 9 SPECIFICATION ---------------------------------------------------------------------------------------------------------------- 13 9.1 APIs introduction ------------------------------------------------------------------------------------------------------ 13 9.2 Tips about how to use APIs ----------------------------------------------------------------------------------------- 14 9.3 Unit test ------------------------------------------------------------------------------------------------------------------ 18 9.4 Demo --------------------------------------------------------------------------------------------------------------------- 18 9.5 Deal with the differences between the new UA and old UA------------------------------------------------- 21

UC

1 Objective and Background


1. Unify UC Browser User-Agent standard on all platforms. Solve those non-standard User-Agent problems of platforms and version splits. 2. Provide the technique standard introduction of UC Browser User-Agent on all platforms. Elaborate how to distinguish UC Browser User-Agent to third party companies (Partner websites and partners). 3. Solve problems caused by some operators gateways filter standard User-Agent fields result in that websites cannot receive UA. 4. Platforms, equipment, resolution and other information which can help websites distinguish UA features. 5. Solve multi-kernel platforms switch problems. 6. Provide APIs and related documents identified by User-Agent.

Terminology: Term UA

X-UCBrowser-UA

U2 kernel

U3 kernel

Speed Mode

Explanation User-Agent. Here it refers to the standard User-Agent. This document uses the abbreviation UA to represent User-Agent. User-Agent is one of HTTP standard heads. It is mainly used to identify the user agent, statistics, tracking user behavior, as well as custom response for a particular user agent. It is not a necessary field of HTTP request, it is needed when clients apply for request. This field contains multiple product tag information. Standard address: http://tools.ietf.org/html/rfc1945#section-10.15 Refers to the extension field of UC Browser, it is mainly used for obtaining more info about the device and its functions. Refers to the rendering engine on feature phones. The pages requested by the client will be parsed and reformatted by the UC server before they are displayed on the client. The HTML pages will be compressed to fit the screen. Refers to the rendering engine on smart phones. The webpages returned by target websites are parsed by the client itself. The rendering and parse effects are better than the U2 kernel. In Speed Mode, UC uses JUC UA to obtain basic version pages. It saves traffic and its faster. In non-speed mode, UC uses Mozilla 5.0 UA to obtain advanced pages, pages display richer.

UC

2 Reading Guide
Chapter 6 to chapter 9 are for developers, chapter 1 to chapter 5 are for non-developers.

3 Client-Server Model
3.1 Proxy mode

In the proxy mode,

When the client sends a request to the UC servers, it also sends the request header to the UC servers.

The UC servers will transfer not only the request but also the IP of the UC servers to the target website. This will cause a problem where the target website receives more than one visit from the UC servers. In order to avoid the target websites security mechanism being activated and the UC servers being blocked, it is recommended to add the IP of the UC servers to your white list. If you need the IP list of the UC servers, you can ask us for it.

After the target website receives the request from the UC servers, it will send the webpage back to the UC servers. After the UC servers receive the webpage from the target website, ti will compress and reformat it and send this page to the client.

After the client receives this page from the UC servers, it will render and display this page.

3.2 Direct mode

UC

Under direct mode, a client sends a request to the target website directly. Then the target website sends the webpages to the client and the client will parse and render the webpages.

4 User-Agent on Different Platforms


4.1 Android 4.1.1 U3 kernel version in Android platform
U3 kernel version in Android platform with speed mode off, UA example: (set MI-ONEPlus as an example)
Mozilla/5.0 (Linux; U; Android 2.3; en-US; MI-ONEPlus) AppleWebKit/534.13 (KHTML, like Gecko) UCBrowser/8.6.0.199 U3/0.8.0 Mobile Safari/534.13

U3 kernel version in Android platform with speed mode on, UA example:


UCWEB/2.0 (Linux; U; Adr 2.3; en-US; MI-ONEPlus) U2/1.0.0 UCBrowser/8.6.0.199 U2/1.0.0 Mobile

4.1.2 U2-mini in Android platform


U2-mini in Android platform with speed mode on, UA example: (set MI-ONEPlus as an example)
UCWEB/2.0 (Linux; U; Adr 2.3; en-US; MI-ONEPlus) U2/1.0.0 UCBrowser/8.6.0.199 U2/1.0.0 Mobile

U2-mini in Android platform with speed mode off, UA example: (OBUA is the UA of built-in browser)
OBUA UCBrowser/8.6.0.199 Mobile

UC

4.2 iPhone platform


iPhone platform with speed mode on, UA example:
UCWEB/2.0 (iOS; U; iPh OS 4_3_2; en-US; iPh4) U2/1.0.0 UCBrowser/8.6.0.199 U2/1.0.0 Mobile

iPhone platform with speed mode off, UA example: (OBUA is the UA of built-in browser)
OBUA UCBrowser/8.6.0.199 Mobile

4.3 iPad platform


iPad platform, UA example:
Mozilla/5.0 (iPad; U; CPU OS 6_0 like Mac OS X; zh-CN; iPad2) AppleWebKit/534.13 (KHTML, like Gecko) UCBrowser/8.6.0.199 U3/0.8.0 Safari/534.13

4.4 WP platform
WP platform with speed mode on, UA example: (set Nokia 900 as an example)
UCWEB/2.0 (Windows; U; wds7.10; en-US; Nokia 900) U2/1.0.0 UCBrowser/8.6.0.199 U2/1.0.0 Mobile

WP platform with speed mode off, UA example: OBUA (OBUA is the UA of IE browser mobile phone version)

4.5 Symbian
Symbian platform, Mobile UA example:
UCWEB/2.0 (Symbian; U; S60 V1; en-US; nokia E520) U2/1.0.0 UCBrowser/8.6.0.199 U2/1.0.0 Mobile

Symbian platform, Desktop UA example: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; Desktop) AppleWebKit/534.13 (KHTML, like Gecko) UCBrowser/8.9.0.25

4.6 Java
Java platform, Mobile UA example:
UCWEB/2.0 (Java; U; MIDP-2.0; en-US; nokia6300) U2/1.0.0 UCBrowser/8.6.0.202 U2/1.0.0 Mobile

Java platform, Desktop UA example:


UC

Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; Desktop) AppleWebKit/534.13 (KHTML, like Gecko) UCBrowser/8.9.0.25

5 Common Questions and Answers


5.1 How do websites judge the on-off state of the UC Browser speed mode through UA?
You can judge the whether speed mod is on or off through the UCWEB field of the UA. If speed mode is on, UA will contain UCWEB, otherwise it will not contains UCWEB. For example:

5.1.1 Android platform


U3 kernel version in Android platform with speed mode on, UA example: (set MI-ONEPlus as an example)
UCWEB/2.0 (Linux; U; Adr 2.3; zh-CN; MI-ONEPlus) U2/1.0.0 UCBrowser/8.6.0.199 U2/1.0.0 Mobile

U3 kernel version in Android platform with speed mode off, UA example:


Mozilla/5.0 (Linux; U; Android 2.3; zh-CN; MI-ONEPlus) AppleWebKit/534.13 (KHTML, like Gecko) UCBrowser/8.6.0.199 U3/0.8.0 Mobile Safari/534.13

5.1.2 iPhone platform


iPhone platform with speed mode on, UA example:
UCWEB/2.0 (iOS; U; iPh OS 4_3_2; zh-CN; iPh4) U2/1.0.0 UCBrowser/8.6.0.199 U2/1.0.0 Mobile

iPhone platform with speed mode off, UA example: (OBUA is the UA of built-in browser)
OBUA UCBrowser/8.6.0.199 Mobile

5.1.3 WP platform
WP platform with speed mode on, UA example:(set Nokia 900 as an example)
UCWEB/2.0 (Windows; U; wds7.10; zh-CN; Nokia 900) U2/1.0.0 UCBrowser/8.6.0.199 U2/1.0.0 Mobile

WP platform with speed mode off, UA example:(set Nokia 900 as an example)


UC

OBUA(OBUA is the UA of IE browser mobile phone version)

5.2 How do websites judge via UA whether a visitor is visiting them with UC Browser or not?
UC Browser s UA will contain UC Browser fields. Through UC Browser fields in UA, websites can judge whether a visitor is visiting them with UC Browser or not. For example: U3 kernel version in Android platform with speed mode off, UA example:
Mozilla/5.0 (Linux; U; Android 2.3; zh-CN; MI-ONEPlus) AppleWebKit/534.13 (KHTML, like Gecko) UCBrowser/8.6.0.199 U3/0.8.0 Mobile Safari/534.13

6 UC Browser User-Agent Standard Specific Definition (non-developers can skim the following chapters)
The User-Agent is one of the standard headers of HTTP. It is mainly used to identify the user agents and collect and track the information about the users behaviors, and to respond to some specific user agents. It is not the required field for users request, but this field will be contained in the user agent request. This field contains the tag information of different products.

6.1 UC Browser User-Agent format


Company/Version (Platform; Encryption; OS Version; Language; Device) Rendering Engine/Version (Rendering Details) Product/Version UC Platform/Version Extensions

6.2 UC Browser User-Agent fields specification


Name
Company/Version

Value example Mozilla/5.0 UCWEB/2.0

Platform

Linux Windows Java Symbian iOS MTK Brew

Specification This field means the company name and version No. U3kernel: Mozilla/5.0 U2kernel: UCWEB/2.0 This field refers to running of the terminal platform of UC Browser. The value of this field will increase as the number of platforms do.

UC

BlackBerry

Encryption

U; I; N;

This means the security encryption type that the application contains. U (128-bit encryption) I (40-bit encryption) N (no encryption) This field means the interface language of UC Browser. It is required to be accurate to the region, because one language may be different in different areas. For the Language field in UserAgent and X-UC Browser-UA, the language code should be in lower case and the area code should be upper case. For other conditions where the Language field is quoted, the language code and area code are both in lower case. This field means the OS information about the terminal device, including the OS version No. Considering the compatibility of U2, this field of iPhone, iPod Touch, Android on the U2 kernel is iPh, iPd, Adr correspondingly. This field of Windows Phone on U2 kernel is wds.

Language

en-US; zh-CN; There are other languages, and they are not listed here.

Os Version

U3kernel: Android 2.3; ios 4.3.1; U2kernel: iPh OS 4_3_2 Adr 2.3; S60 V1; S60 V2; S60 V3; S60 V5; MIDP 2.0; wds 7.0; There are other values, and they are not listed here.

Device

Nokia 6300; Mi-ONEPlus; iPh4; iPd1; There are other devices, and they are not listed here.

This field means the device info on different platforms: On U2 kernel: The platform value for iPhone and iPod Touch are iPh and iPd. On U2 kernel: The platform value for iPhone and iPod Touch are iPhone and iPod Touch.
UC

Rendering Engine/Version (Rendering Details)

AppleWebKit/530.13 (KHTML, like Gecko) U2/1.0.0 U3/0.8.0

Product/Version

UCBrowser/8.6.0.102

This field means the version No. of the rendering engine For U2 kernel, the latest version No. is 1.0.0 For U3 kernel, the version No. will update continuously This field contains the information about product and version No.
This field means the platform type and the version No. of the client. So far, there are two UC platforms: The current version No. of U2 platform is 1.0.0 The current version No. of U3 platform is 0.8.0 When you are using the built-in browser kernel (WebKit or IE), this value is null.

UC Platform/Version

The value area is: U2/1.0.0; U3/0.8.0; Null

Extensions

Mobile Safari/Version; Mobile There are other extension fields, and they are not listed here.

This field means the extension info. Mobile means that UC Browser gets the pages that are fit to mobile phone screens. Safari/Version means that you are using the AppleWebKit engine.
The UA of built-in browsers. Mainly used for the condition that WebKit kernel is used on the products based on U2 kernel. The UA of devices. It will contains some relevant information of devices, such as phone OS and phone model.

OBUA

Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_2 like Mac OS X; en-US) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8H7

Safari/6533.18.5 Device UA Nokia6070/2.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 (03.20)

7 UC Browser X-UCBrowser-UAstandard Specific Definition


This request header is an extension of the UA, and contains richer information than the UA. Some information, for example, whether the screen rotation is in landscape or portrait,

UC

cannot be sent by the UA but can be sent by the X-UCBrowser-UA. Format: Key1(Value1);Key2(Value2);........... Flexible data structure to support dynamic data expansion. Data content includes basic data and business data, the basic data Key is fixed, business data based on the definition of the product needs and expansion. Key represents data field definitions, Value represents the value definition. Taking into account the amount of data, Key and Value may exist in compressed and defined special string. The Key field generally by a combination of lowercase letters of names, such as Platform Key is pf, Visit Mode Key is vm, and so on. Key can not be defined repeatedly. The detailed specification of each key value are shown as below: Name Key valu e pf Value example Data type Suppo rted platfo rm Basic All data platfo rms Optio Specification nal or not Requ ired This field means the terminal platform where UC Browser runs on.

Platform

Linux Windows Java Symbian iOS MTK Brew BlackBerry

UC Platform

up

U2/1.0.0; U3/0.8.0; Null

Basic Andro Requ data id ired WP iOS Symbi an Java

This field means the platform type and the version No. There are two types of platforms: For U2 platform, the only version No. is 1.0.0 For U3 platform, the version No. Will be updated continuously If the browser is using built-in kernel (Webkit or
UC

10

Encryption

er

U; I; N;

Basic Andro Requ data id ired WP iOS Symbi an Java

IE), the value of this key is null. It means the security encryption type that the application contains. U (128-bit encryption) I (40-bit encryption) N (no encryption) This field means the language Browser. It is required to be accurate to the region, because one language may be different in different areas. For the Language field in UserAgent and X-UC Browser-UA, the language code should be in lower case and the area code should be upper case. For other conditions where the Language field is quoted, the language code and area code are both in lower case. This field means the rendering engine. interface of UC

Language

la

en-US; zh-CN; There other languages, and they are not here. listed are

Basic All data platfo rms

Requ ired

Rendering

re

Rendering of the UA

Basic All data platfo rms

Requ ired

11

UC

Device

dv

Nokia 6300; Mi-ONEPlus; iPh; iPd; There are

Basic All data platfo rms

Requ ired

This field means the device of the UA.

other devices, and they are not here. listed

Product

pr

OS-Version

ov

UC Browser of the UA OS-version of the UA Width*Hei ght

Pixel

pi

Basic All data platfo rms Basic All data platfo rms Busi All ness platfo data rms

Requ ired Requ ired Requ ired

This field means the product, UC Browser. Operating System

Density

ss

Width*Hei ght

Basic All data platfo rms

Requ ired

Proxy Mode

pm

0: Off Busi (direct ness mode) data 1: On (proxy mode) 0: Fit to Busi screen ness 1: Zoom data view

Browsing View

bv

Night Mode

nm

0: Off 1: On

Busi ness data

Andro id WP iOS Symbi an Java Andro id iOS Symbi an Java Andro id WP iOS Symbi an

Optio nal

Optio nal

This field means the pixel resolution, which is, the actual physical resolution of the screen. This field means the logical resolution. For example, the logical resolution for iPhone4 is 320*480. This field means if proxy mode is activated. If the browser is using built-in kernel (Webkit or IE), then pm=0 This field means if browsing view is activated.

Optio nal

This field means if night mode is activated.

12

UC

No-Image Mode

im

0: Off Busi (with ness images) data 1: On (text-only)

Screen Rotation

sr

0: Automatic 1: Landscape 2: Portrait

Busi ness data

NetType

nt

0: wap 1: net 2: wifi 99: Others

Busi ness data

Java Andro id WP iOS Symbi an Java Andro id WP iOS Symbi an Java Andro id WP iOS Symbi an Java

Optio nal

This field means if text-only mode is activated.

Optio nal

This field what the rotation is.

means screen

Optio nal

This field means the network type the client is in.

8 X-UCBrowser-UA Details on Different Platforms


Platform: all platforms. Here it is an simple example:
pf(Java);er(U);la(zh-CN);up(U2/1.0.0);re(U2/1.0.0);dv(Nokia6300);pr(UCBrowser/8.3.0.182);ov(S40 V3);pi(320*240);ss(320*240);pm(1);bv(1);nm(0);im(1);sr(2);

9 Specification
This chapter is the instructions for the User-Agent, including the introduction of the APIs files and how to use them.

9.1 APIs introduction


This section introduces the relationships between some common-used APIs and their corresponding objects. Object name Function GlobalConstant Provides the definition of a global constant

13

UC

The object model of the User-Agent in the HTTP Header. It is used for encapsulating the relevant field segment and providing a easy way to read the data. XUCBrowserUserAgent The object model of X-UCBrowser-UA in HTTP Header. It is used for encapsulating the relevant data segment and providing a easy way to read the field. It is inherited from the User-Agent object and provides more features of UC Browser. UserAgentFactory It is the engineering approach of the UserAgent and XUCBrowserUserAgent. It is used for parsing the corresponding HTTP Header field, and parsing the relevant field to generate the corresponding object. For the detailed APIs document, please refer to UC Browser User-Agent Instruction
UserAgent

9.2 Tips about how to use APIs


Since now there are a number of handheld devices, so that there is a number of device parameters and performances, it is not easy to make adaption to webpages. Sometimes a service provider can design tens of kinds of pages to make adaptions to different devices. The reasons for these problems are: 1. The specification of User-Agent is too flexible and not standardized, so that it is difficult to parse the User-Agent, and sometimes the User-Agent is not accurate. 2. The information that User-Agent contains is so little that the device information cannot be detected accurately. 3. The gateway blocks User-Agent so that the device information cannot be detected. 4. Because of some historical reasons, the User-Agent of UC Browser is not accurate and contains little information.
In view of the above-mentioned facts, we will introduce the latest User-Agent and

X-UCBrowser-UA specification of UC Browser and tips on how to use them.

9.2.1 Generate UserAgent, XUCBrowserUserAgent object


Call the corresponding creation method of UserAgentFactory to generate a object. The codes
are shown as below:

UserAgent ua = UserAgentFactory.createUserAgent("UCWEB/2.0(Java; U; MIDP2.0; zh-CN; nokia6300) U2/1.0.0 UCBrowser/8.6.0.199 U2/1.0.0 Mobile"); System.out.println(ua.toString());

9.2.2 How to use UserAgent


UserAgent provides various APIs to get all kinds of information of the the device in use.

14

UC

To get information about the handheld device platform


UserAgent ua = UserAgentFactory.createUserAgent("UCWEB/2.0(Java; U; MIDP2.0; zh-CN; nokia6300) U2/1.0.0 UCBrowser/8.6.0.199 U2/1.0.0 Mobile"); String platform = ua.getPlatform(); ua.isLinux(); //Whether it is Linux ua.isiOS(); //Whether it is iOS ua.isWindows(); //Whether it is windows ua.isJava(); //Whether it is Java ua.isSymbian(); //Whether it is Symbian ...............

To get information about the handheld device model


UserAgent ua = UserAgentFactory.createUserAgent("UCWEB/2.0(Java; U; MIDP2.0; zh-CN; nokia6300) U2/1.0.0 UCBrowser/8.6.0.199 U2/1.0.0 Mobile"); String device = ua.getDevice(); //Get information about the handheld device model, for example, Nokia6300 ...............

To get information about the handheld device OS


UserAgent ua = UserAgentFactory.createUserAgent("UCWEB/2.0(Java; U; MIDP2.0; zh-CN; nokia6300) U2/1.0.0 UCBrowser/8.6.0.199 U2/1.0.0 Mobile"); String os = ua.getOS(); //Get information about the handheld device, for example, iPhone ua.isWP(); ua.isiPhone(); ua.isS60(); ua.isAndroid(); ...............

To get information about the rendering engine The rendering engine can detect UC Browser s capacity to parse webpages. In general, UC Browser can be divided into three types: 1. U2 engine on U2 platform. For this engine, it is recommended to adapt the page to be WAP1.0 or WAP 2.0. The features of UC Browser such as Cloud Acceleration and Night mode are supported. 2. WebKit engine on U2 platform. For this engine, JS and HTML5 are supported and you

15

UC

can adapt the page with more elements. The support of Cloud Acceleration and Night mode on this platform are not as good as that on U3 engine. 3. Highly-modified WebKit engine on U3 platform. For this engine, not only JS and HTML5 but also some features of UC Browser are supported, such as Night mode and Cloud Acceleration.
UserAgent ua = UserAgentFactory.createUserAgent("UCWEB/2.0(Java; U; MIDP2.0; zh-CN; nokia6300) U2/1.0.0 UCBrowser/8.6.0.199 U2/1.0.0 Mobile"); String renderingEngine= ua.getRenderingEngine(); //Get handheld device model, for example, iPhone ua.isU2(); // The current engine does not support pages in JS or HTML5, please adapt the pages to WAP1.0 and WAP2.0. ua.isWebKit(); // The current engine support JS and HTML5, you can adapt the pages with richer element. ua.isU3(); // The current engine support JS and HTML5, you can adapt the pages with richer element. ...............

To get product info


UserAgent ua = UserAgentFactory.createUserAgent("UCWEB/2.0(Java; U; MIDP2.0; zh-CN; nokia6300) U2/1.0.0 UCBrowser/8.6.0.199 U2/1.0.0 Mobile"); String product = ua.getProdcut(); //Get UC Browser product code and version No. String productVersion = ua.getProdcutVersion(); // Get product version No. ...............

To get language parameters UC Browser differs from the International and Chinese versions. You can know whether the product you are using is the International version or Chinese version by checking the language parameter.
UserAgent ua = UserAgentFactory.createUserAgent("UCWEB/2.0(Java; U; MIDP2.0; zh-CN; nokia6300) U2/1.0.0 UCBrowser/8.6.0.199 U2/1.0.0 Mobile"); String language = ua.getLanguange(); //Get the interface language of UC Browser ...............

To get other info It provides some features, for example, whether the mobile feature is supported or not.
UserAgent ua = UserAgentFactory.createUserAgent("UCWEB/2.0(Java; U; MIDP2.0; zh-CN; nokia6300) U2/1.0.0 UCBrowser/8.6.0.199 U2/1.0.0 Mobile"); ua.isMobile(); // Whether is it is proper to display the pages in Mobile mode ua.isSupperHtml5(); // Whether the page supports html5

16

UC

........................

To get UserAgent version No.


UserAgent ua = UserAgentFactory.createUserAgent("UCWEB/2.0(Java; U; MIDP2.0; zh-CN; nokia6300) U2/1.0.0 UCBrowser/8.6.0.199 U2/1.0.0 Mobile"); ua.getVersion(); // Get the version No. of UC Browser. The version No. of new platforms is 2.0.0 and the version No. of traditional platforms is 1.0.0 ........................

9.2.3 How to use XUCBrowserUserAgent


XUCBrowserUserAgent is able to solve the problem that sometimes User-Agent are blocked by gateways and the problem that some User-Agents contain too little information. It provides some relevant features of UC Browser, such as pixel resolution, density resolution, night mode and browsing view. To get device screen parameters The screen parameter is very useful information for page adaption. XUCBrowserUserAgent provides information such as pixel resolution and density resolution
XUCBrowserUserAgent ua = UserAgentFactory.createXUCBrowserUserAgent("pf(Java);er(U);la(zh-CN);up(U2/1.0.0);re(U2/1.0.0);dv( Nokia6300);pr(UCBrowser/8.6.0.199);ov(S40 V3);pi(320*240);de(320*240);pm(1);bv(1);nm(0);im(1);sr(2);"); String pixel = ua.getPixel(); // Get the information about pixel resolution, for example, 320*240 String density = ua.getDensity(); // Get the information about density resolution, for example, 320*240 ........................

To get other features


String text = "pf(Java);er(U);la(zh-CN);up(U2/1.0.0);re(U2/1.0.0);dv(Nokia6300);pr(UCBrowser/8.6.0.199);ov(S40 V3);pi(320*240);de(320*240);pm(1);bv(1);nm(0);im(1);sr(2);" XUCBrowserUserAgent ua = UserAgentFactory.createXUCBrowserUserAgent(text); ua.isProxyMode(); // Whether it is proxy mode ua.isNightMode(); // Whether it is night mode ua.isNoImageMode(); // Whether it is text-only mode ua.browingViewIsAdaptScreen(); // Fit to screen

17

UC

ua.browingViewIsZoom(); // Zoom View ua.screenRotationFollowSystem(); // Auto Rotation ua.screenRotationLockVertical(); // Portrait ua.screenRotationLockHorizontal()); // Landscape ........................

9.2.4 How to use APIs PHP


The corresponding classes of PHP API, including class name, variable name and method name, are the same as those of Java, except with some differences on syntax. When you call the API in your php, make sure that the file UserAgentFactory.php is included. For the details about how to use this interface, you can refer to the part of Java APIs.

Import PHP files


require_once '../useragent/UserAgentFactory.php';

9.3 Unit test


The open source project provides a unit test to make sure that the different function modes are functioning. For details, you can refer to these folders in source code files: java/test and php/test

9.4 Demo
The open source project provides some demos for developers' reference.

9.4.1 Java Demo


TestControl provides demos in the control console. GUITest provides demos in the GUI interface. Run run.bat, and you will see this:

18

UC

Enter:

UCWEB/2.0(Symbian; U; S60 V2; zh-CN; nokia E520) U2/1.0.0 UCBrowser/8.6.0.199

U2/1.0.0 Mobile

And you will get this:

Enter:
pf(Java);er(U);la(zh-CN);up(U2/1.0.0);re(U2/1.0.0);dv(Nokia6300);pr(UCBrowser/8.6.0.199);ov (S40 V3);pi(320*240);de(320*240);pm(1);bv(1);nm(0);im(1);sr(2);;

And you will get this:

19

UC

9.4.2 PHP Demo


Copy the php folder and paste it in the root folder of Apache, for example, C:\xampp\htdocs. And make sure the Apache service is activated. Then open your browser and visit http://localhost/php/index.php (Suppose that Apache is deployed on your computer, the port is 80. Otherwise, you have to change the URL according to your actual domain name and port.) When you visit this URL, the interface you see will be as shown below:

Unit Test is the unit test of UserAgent and XUCBrowserUserAgent these two classes. The unit test frame applies SimpleTest, which is open source. The related codes are in the folder named Test.

UI Test provides the testing interface in webpage form, which has the same function as that of GUITest of Java. The display effect is shown as below:

20

UC

Enter the following codes and click Parse User-Agent:


UCWEB/2.0(Symbian; U; S60 V2; zh-CN; nokia E520) U2/1.0.0 UCBrowser/8.6.0.199 U2/1.0.0 Mobile

Enter the following codes and click Parse X-UCBrowser-UA:


pf(Java);er(U);la(zh-CN);up(U2/1.0.0);re(U2/1.0.0);dv(Nokia6300);pr(UCBrowser/8.6.0.199);ov (S40 V3);pi(320*240);ss(320*240);pm(1);bv(1);nm(0);im(1);sr(2);;

And you will get the same results as those with Java GUITest.

9.5 Deal with the differences between the new UA and old UA
Because there are still a lot users on traditional platforms, the APIs will be compatible with the UA on traditional platforms. Because the UA specification on traditional platforms is not standardized yet, the UserAgent is only for some simple data parsing, or sometimes the User-Agent cannot be parsed because of some problem. Third-party companies have to deal with this accordingly.

9.5.1 Old UA format for Android,iPhone,WP


Platfo rm UC Browsre version Kernel Access point UA specification

21

UC

No.
<= 7.4.0.57 wap UC U2 kernel net > and = wifi 7.4.1.61

J2ME
JUC (Linux;U;AndroidVersion;Language;Model;ScreenWid e*ScreenHeight;) JUC (Linux;U;AndroidVersion;Language;Model;ScreenWid e*ScreenHeight;) Version/PFID/BID Mozilla/5.0 (Linux;U;Android_Version;Language;Model;ScreenWi de*ScreenHeight;) Version/3.1.2 Mozilla/5.0 net wifi (Linux;U;Android_Version;Language;Model;ScreenWi de*ScreenHeight;) Version/PFID/BID AppleWebKit/528.5+ (KHTML) Version/3.1.2/Browser Name+Browser AppleWebKit/528.5+ (KHTML) Browser Name+Browser

Andro id

< 3

7.9.3.10 WebKit kernel

wap

>

wap UC U3 kernel net wifi wap UC U2 kernel net wifi

Mozilla/5.0 (Linux; U; Android + SDK version No. + Language + Safari/530 IUC(U;iOS_Version;Language;ScreenWide*ScreenHeig ht;) Phone model + Mobile OS version No.) UC (KHTML, like Gecko) Mobile AppleWebKit/530+

8.0.3.99

IUC(U;iOS_Version;Language;ScreenWide*ScreenHeig ht;)/Browser Name+Browser Version/PFID/BID Palm680/RC1(iPhone; U; CPU iPhone OS 2_2_1 like Mac OS X; zh-cn) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5G77 Safari/525.20 Palm680/RC1(iPhone; U; CPU iPhone OS 2_2_1 like Mac

iPhon e
WebKit kernel

wap

net wifi

OS X; zh-cn) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5G77 Name+Browser Safari/525.20/Browser Version/PFID/BID

9.5.2

User-Agent version No.

You can distinguish between the new and the traditional platforms by the version No. For details, you can refer to the part about how see the version No. in: Section 6.2 Tips about how to use APIs.

22

UC

You might also like