3
我正在尋找一種方法來生成我正在製作的應用程序的「下載iTunes」按鈕。如何添加「在iTunes上獲取」按鈕
我只是不知道如何獲得實際發送用戶到iTunes商店後點擊所需的URL。
我看到這post,它談論使用的URL。我試着將它輸入到我的應用程序中,它工作得很好。但是,我不知道在哪裏生成這些基於歌手藝術家和標題的網址。
我知道我可能只需要使用Linkmaker?有其他方法嗎?
乾杯
我正在尋找一種方法來生成我正在製作的應用程序的「下載iTunes」按鈕。如何添加「在iTunes上獲取」按鈕
我只是不知道如何獲得實際發送用戶到iTunes商店後點擊所需的URL。
我看到這post,它談論使用的URL。我試着將它輸入到我的應用程序中,它工作得很好。但是,我不知道在哪裏生成這些基於歌手藝術家和標題的網址。
我知道我可能只需要使用Linkmaker?有其他方法嗎?
乾杯
我在同樣的問題早跌跌撞撞,這裏是我是如何解決這個問題:
我越來越artist name
- song name
作爲輸入值。然後,我只是創建一個適當的鏈接,請求iTunes搜索api,並獲得一堆鏈接,選擇第一個並創建一個按鈕。
注:iTunes搜索api無法識別藝術家名稱和歌曲名稱中的空格,我們應該用「+」符號替換字符串中出現的所有空格。
代碼片段:
func fetchLink(artist: String, track: String, completion: ((String?) ->()), failure: ((NSError) ->())?)
{
let artistFixedString = replaceSpacesInString(artist)
let trackFixedString = replaceSpacesInString(track)
let urlString = "https://itunes.apple.com/search?term=" + artistFixedString + "+" + trackFixedString + "&limit=1"
//NOTE: here we can use NSURLSession
let manager = AFHTTPRequestOperationManager()
manager.GET(urlString, parameters: nil, success: { (operation, result) -> Void in
if let results = result["results"] as? [[String:AnyObject]], let track = results.first, let itunesUrl = track["trackViewUrl"] as? String
{
dispatch_async(MainQueue) { completion(itunesUrl) }
}else{
dispatch_async(MainQueue) { completion(nil) }
}
}) { (operation, error) -> Void in
dispatch_async(dispatch_get_main_queue()) {
failure?(error)
}
}
}
func replaceSpacesInString(string: String, withString replacement: String = "+") -> String
{
return string.stringByReplacingOccurrencesOfString(" ", withString: replacement, options: NSStringCompareOptions.LiteralSearch, range: nil)
}
感謝您的回答!我沒有使用AFNetworking,但我想我應該是。實際上,我會給出一個 –
@JakeAlsemgeest,你可以使用任何庫來提出請求,網絡連接,alamofire,nsurlconnection或nsurlsession。主要觀點是生成正確的URL並解析迴應 – tikhop
是的,我知道,我只是覺得它會更容易,因爲我還沒有使用庫。它也起作用!謝謝! –