手机浏览器UA测试(三)

 1.Android自带浏览器的UAProfile实现
    1) UI设置
    在Android浏览器的地址栏内输入“about:debug”,并进入,这时不会有新的网页显示,但这却使浏
览器进入了debug模式。
    在Menu菜单中选择“More”,在弹出的菜单中选择“Settings”,在弹出的页面上你会发现多了一些
“debug”相关项,最后一项即为“UAString”,点击,弹出当前的已有的配置项
    2)代码实现:
strings.xml: \packages\apps\Browser\res\values\strings.xml
其中有如下一段:


        Android
        Desktop
        iPhone



        0
        1
        2
 



pref_development_ua_choices:对应的是UserAgent时选项的名字
pref_development_ua_values:对应的是不同的UserAgent,


BrowserSettings.java:\packages\apps\Browser\src\com\android\browser\BrowserSettings.java
其中有如下代码:
private static final String DESKTOP_USERAGENT = "Mozilla/5.0 (Macintosh; " +
            "U; Intel Mac OS X 10_5_7; en-us) AppleWebKit/530.17 (KHTML, " +
            "like Gecko) Version/4.0 Safari/530.17";
    private static final String IPHONE_USERAGENT = "Mozilla/5.0 (iPhone; U; " +
            "CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 " +
            "(KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16";


 public void update(Observable o, Object arg) {
            BrowserSettings b = (BrowserSettings)o;
            WebSettings s = mSettings;
            s.setLayoutAlgorithm(b.layoutAlgorithm);
            if (b.userAgent == 0) {
                // use the default ua string
                s.setUserAgentString(null);
            } else if (b.userAgent == 1) {
                s.setUserAgentString(DESKTOP_USERAGENT);
            } else if (b.userAgent == 2) {
                s.setUserAgentString(IPHONE_USERAGENT);
            }


由此我们可以看出第一段Java代码是不同的UserAgent字符串,从第二段代码中我们可以看出strings.xml中那个整
数的数组和不同UserAgent的对应关系,0对应默认的UserAgent,即Android Chrome Lite自己的UserAgent,1对应
的是Mac OS的UserAgent,2对应的是IPhone OS的UserAgent。


2. 设置自己的UAProfile
1) 在strings.xml中添加一个UserAgent选项的名字,然后添加一个序号
2) 在BrowserSettings.java中读取自己的UserAgent字符串,然后再加一个if:
else if (b.userAgent == 3) {
    s.setUserAgentString(YOUR_OWN_USERAGENT);

你可能感兴趣的:(浏览器,测试,手机,browser,iphone,android)