浏览器地址栏输入空格搜索时,如何实现根据当前设定的的搜索引擎来调用
时间:10-02
整理:3721RD
点击:
[DESCRIPTION]
目前,浏览器地址栏输入空格默认调用谷歌搜索, 而客户需要实现根据当前设定的的搜索引擎来调用。
[SOLUTION]
在地址栏输入关键字进行搜索, google默认设计实际上会先按"http://www.google.com/m?q=%s"格式处理,其中%s即
为关键字,那么在输入空格之类的非法关键字搜索时,就不会再发ACTION_VIEW上来用用户设定的searchEngine来搜显
示了,所以就会让用户产生设定的搜索引擎失效的疑惑。
对应代码在:IntentHandler.Java (packages\apps\browser\src\com\android\browser)的getUrlDataFROMIntent方法里,
if()..else(){
...
url = UrlUtils.fixUrl(url);
url = UrlUtils.smartUrlFiLTEr(url);//这里会调到UrlUtils.java里,会看到默认用到QUICKSEARCH_G,
...
}
所以,如要需要修改的话,建议在UrlUtils.java里smartUrlFilter方法里
if (canBeSearch) {
return URLUtil.composeSearchUrl(inUrl,
QUICKSEARCH_G, QUERY_PLACE_HOLDER);
}
对于默认的QUICKSEARCH_G,改成动态获得用户设定的searchEngine主页网址来处理即可。
目前,浏览器地址栏输入空格默认调用谷歌搜索, 而客户需要实现根据当前设定的的搜索引擎来调用。
[SOLUTION]
在地址栏输入关键字进行搜索, google默认设计实际上会先按"http://www.google.com/m?q=%s"格式处理,其中%s即
为关键字,那么在输入空格之类的非法关键字搜索时,就不会再发ACTION_VIEW上来用用户设定的searchEngine来搜显
示了,所以就会让用户产生设定的搜索引擎失效的疑惑。
对应代码在:IntentHandler.Java (packages\apps\browser\src\com\android\browser)的getUrlDataFROMIntent方法里,
if()..else(){
...
url = UrlUtils.fixUrl(url);
url = UrlUtils.smartUrlFiLTEr(url);//这里会调到UrlUtils.java里,会看到默认用到QUICKSEARCH_G,
...
}
所以,如要需要修改的话,建议在UrlUtils.java里smartUrlFilter方法里
if (canBeSearch) {
return URLUtil.composeSearchUrl(inUrl,
QUICKSEARCH_G, QUERY_PLACE_HOLDER);
}
对于默认的QUICKSEARCH_G,改成动态获得用户设定的searchEngine主页网址来处理即可。