Check Application version | iOS | Swift

Show the alert within application for update the application.

func checkApplicationVersion(){
        let urlString = String(format: "http://itunes.apple.com/lookup?id=%@",AppleAppID)
        let url = NSURL(string: urlString)
        let urlRequest = NSURLRequest(URL: url!)
        NSURLConnection.sendAsynchronousRequest(urlRequest, queue: NSOperationQueue.mainQueue()) { (response, data, error) -> Void in
            if (error == nil)
            {
                do {
                    let appMetadataDictionary : NSDictionary = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers) as! NSDictionary
                    let resultsArray : NSArray = appMetadataDictionary.objectForKey("results") as! NSArray
                    let resultsDic : NSDictionary = resultsArray.firstObject as! NSDictionary

                    let iTunesVersion : String = resultsDic.objectForKey("version") as! String
                    let appVersionString : String = NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleShortVersionString") as! String
                    
                    if(appVersionString.compare(iTunesVersion) != NSComparisonResult.OrderedSame// new version exists
                    {
                        let message = String(format:"New version %@ available. Update required.",iTunesVersion)
                        let alert = UIAlertController(title: KEY_AppAlertTitle, message: message, preferredStyle: UIAlertControllerStyle.Alert)
                        alert.addAction(UIAlertAction(title: "Update", style: .Default, handler: { (action) -> Void in
                            let iTunesLink : String = String(format:"itms://itunes.apple.com/us/app/apple-store/id%@?mt=8",AppleAppID)
                            UIApplication.sharedApplication().openURL(NSURL(string: iTunesLink)!)
                        }))
                        alert.addAction(UIAlertAction(title: "Cancel", style: .Cancel, handler: nil))
                        self.window?.rootViewController?.presentViewController(alert, animated: true, completion: nil)
                    }
                } catch let error as NSError {
                    print("error while lookup:- \(error)")
                }
            }else{
                    print("error occurred communicating with iTunes:- \(error)")
            }
        }

    }

Comments

Popular posts from this blog

Vector graphics in iOS

Exception Handling - Objective C

How to show activity indicator in watch kit