2016-09-28 24 views
0

我實現了一個非常簡單的谷歌建議功能基於我在這裏找到:http://shreyaschand.com/blog/2013/01/03/google-autocomplete-api/我如何猜測Google建議功能的雙字母語言代碼?

你甚至不必使用XML解析器:

+ (NSArray *)suggestionsForQuery:(NSString *)query language:(NSString *)language 
{ 
    NSMutableArray *suggestions; 

    NSString *URLString = [NSString stringWithFormat:@"http://suggestqueries.google.com/complete/search?q=%@&client=toolbar&hl=%@", query, language]; 

    NSError *error = nil; 

    NSString *XMLString = [NSString stringWithContentsOfURL:[NSURL URLWithString:URLString] encoding:NSUTF8StringEncoding error:&error]; 

    if (error) { 

     NSLog(@"ERROR {%@}", error.description); 
    } 
    else { 

     XMLString = [XMLString stringByReplacingOccurrencesOfString:@"<?xml version=\"1.0\"?>" withString:@""]; 

     XMLString = [XMLString stringByReplacingOccurrencesOfString:@"<toplevel>" withString:@""]; 

     XMLString = [XMLString stringByReplacingOccurrencesOfString:@"</toplevel>" withString:@""]; 

     XMLString = [XMLString stringByReplacingOccurrencesOfString:@"<CompleteSuggestion>" withString:@""]; 

     XMLString = [XMLString stringByReplacingOccurrencesOfString:@"</CompleteSuggestion>" withString:@""]; 

     XMLString = [XMLString stringByReplacingOccurrencesOfString:@"<suggestion data=\"" withString:@""]; 

     suggestions = [NSMutableArray arrayWithArray:[XMLString componentsSeparatedByString:@"\"/>"]]; 

     [suggestions removeLastObject]; 
    } 

    return suggestions; 
} 

它的工作原理,但只有當你已經知道了兩個字母的語言代碼。

你知道有什麼方法可以根據用戶搜索的位置猜測兩個字母的語言代碼嗎?

如果它嚴格基於位置,如果假設用戶在法國度假並且所有突然的建議都改爲Google法國,我不會喜歡它。

它應該基於用戶在其iOS設備上已經使用的語言嗎?

回答

0

這種校正實際上將解決這個問題:

NSString *URLString = [NSString stringWithFormat:@"http://suggestqueries.google.com/complete/search?q=%@&client=toolbar&hl=%@", query, [[NSLocale currentLocale] languageCode]]; 

儘管如此,生活在印度和有他們的語言設置爲法國人都會有基於谷歌法國谷歌的建議。

這更像是減輕問題的重量,而不是解決問題。

相關問題