func loginWS(parameters:[String:String], completionHandler: @escaping (Any?) -> Swift.Void) {
guard let gitUrl = URL(string: BASE_URL+ACTION_URL) else { return }
print(gitUrl)
let request = NSMutableURLRequest(url: gitUrl)
// uncomment this and add auth token, if your project needs.
// let config = URLSessionConfiguration.default
// let authString = "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxMywiUGFzc3dvcmQiOiIkMmEkMTAkYVhpVm9wU3JSLjBPYmdMMUk2RU5zdU9LQzlFR0ZqNzEzay5ta1pDcENpMTI3MG1VLzR3SUsiLCJpYXQiOjE1MTczOTc5MjV9.JaSh3FvpAxFxbq8z_aZ_4OhrWO-ytBQNu6A-Fw4pZBY"
// config.httpAdditionalHeaders = ["Authorization" : authString]
let session = URLSession.shared
request.httpMethod = "POST"
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("application/json", forHTTPHeaderField: "Accept")
request.httpBody = try! JSONSerialization.data(withJSONObject: parameters, options: [])
let task = session.dataTask(with: request as URLRequest) { data, response, error in
guard let data = data else { return }
do {
// let decoder = JSONDecoder()
// here replace LoginData with your codable structure.
let gitData = try JSONDecoder().decode(LoginData.self, from: data)
print("response data:", gitData)
completionHandler(gitData)
} catch let err {
print("Err", err)
}
}.resume()
}
Monday, 17 June 2019
Service Call With NsUrlSession
Height Label Swift
extension UILabel
{
// SwifterSwift: Initialize a UILabel with text
public convenience init(text: String?)
{
self.init()
self.text = text
}
// SwifterSwift: Required height for a label
public var requiredHeight: CGFloat
{
let label = UILabel(frame: CGRect(x: 0, y: 0, width: frame.width, height: CGFloat.greatestFiniteMagnitude))
label.numberOfLines = 0
label.lineBreakMode = NSLineBreakMode.byWordWrapping
label.font = font
label.text = text
label.attributedText = attributedText
label.sizeToFit()
return label.frame.height
}
// SwifterSwift: Required height for a label
public var requiredWidth: CGFloat
{
let label = UILabel(frame: CGRect(x: 0, y: 0, width: CGFloat.greatestFiniteMagnitude, height: frame.height))
label.numberOfLines = 0
label.lineBreakMode = NSLineBreakMode.byWordWrapping
label.font = font
label.text = text
label.attributedText = attributedText
label.sizeToFit()
return label.frame.width
}
func halfTextColorChange (fullText : String , changeText : String)
{
let strNumber: NSString = fullText as NSString
let range = (strNumber).range(of: changeText)
let attribute = NSMutableAttributedString.init(string: fullText)
attribute.addAttribute(NSAttributedString.Key.foregroundColor, value: Theme.redColor , range: range)
self.attributedText = attribute
}
}
/*
let TotalHeight : Int = Int(cell.lblComment.requiredHeight)
return CGFloat(51+TotalHeight)
*/
Sunday, 9 June 2019
Pagination Using Swift Language 4.0 Scroll and Tableview
var isDataLoading:Bool=false
var pageNo:Int=0
var limit:Int=20
var offset:Int=0 //pageNo*limit
var didEndReached:Bool=false
func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
print("scrollViewWillBeginDragging")
isDataLoading = false
}
func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
print("scrollViewDidEndDecelerating")
}
//Pagination
func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {
print("scrollViewDidEndDragging")
if ((tableView.contentOffset.y + tableView.frame.size.height) >= tableView.contentSize.height)
{
if !isDataLoading{
isDataLoading = true
self.pageNo=self.pageNo+1
self.limit=self.limit+10
self.offset=self.limit * self.pageNo
loadCallLogData(offset: self.offset, limit: self.limit)
}
}
}
Tuesday, 4 June 2019
Check Internet Connection Using Rechablity
First Insert Pod
pod 'ReachabilitySwift'
Add This Function In Your View Controller File
//MARK:- Network reachablity
@objc func reachabilityChanged() -> Bool
{
let reachability : Reachability = Reachability()!
switch reachability.connection
{
case .wifi:
print("Reachable via WiFi")
return true
case .cellular:
print("Reachable via Cellular")
return true
case .none:
print("Network not reachable")
return false
}
}
Check Connection
let IsConnection = self.reachabilityChanged()
if (IsConnection)
{
self.GetUserBankAccountServiceCall()
}
else
{
self.showAlert(AppName, msg:"no Internet Connection", dismissBtnTitle: OK)
}
Call Web Service Using Alamofire
Add Pod AlamoFire
pod 'Alamofire'
Import Alamofire
@Service Using Post Method
let urlString = "\(BASE_URL)"
let param : Parameters = ["username":"\(dictUserDetail.value(forKeyPath: "username") as! String)", "newPassword":txtNewPassword.text!, "oldPassword":txtCurrentPassword.text!]
Alamofire.request(urlString, method: .get, parameters: param as Dictionary ,encoding: JSONEncoding.default, headers: ["authorization":authToken,"Content-Type":"application/json"]).responseJSON
{
response in
switch response.result
{
case .success:
print(response)
let result = response.result.value
let JSON = result as! NSDictionary
let success = JSON.value(forKey: "success") as! String
if (success == "1")
{ }
else
{
}
break
case .failure(let error):
print(error.localizedDescription)
break
}
}
@Service Using Get Method
let urlString = "\(BASE_URL)"
let param : Parameters = ["username":"\(dictUserDetail.value(forKeyPath: "username") as! String)", "newPassword":txtNewPassword.text!, "oldPassword":txtCurrentPassword.text!]
Alamofire.request(urlString, method: .post, parameters: param as Dictionary ,encoding: JSONEncoding.default, headers: ["authorization":authToken]).responseJSON
{
response in
switch response.result
{
case .success:
print(response)
let result = response.result.value
let JSON = result as! NSDictionary
let success = JSON.value(forKey: "success") as! String
if (success == "1")
{ }
else
{
}
break
case .failure(let error):
print(error.localizedDescription)
break
}
}
Monday, 1 April 2019
Subscribe to:
Posts (Atom)
