[英]Swift 3 linkedin integration condition if linkedin app already install in iPhone device
我在应用程序中的linkedin集成中遇到了一些问题。 我的iPhone设备中已经安装了Linkedin应用程序。 但是每当我想通过linkedin应用程序登录应用程序时,总是将我移到AppStore中以安装linkedin。 我的问题是我将如何检查linkedin应用程序是否已安装。 如果linkedin应用程序已经安装,那么我可以直接通过linkedin登录并转到所需的ViewController
。 否则,我可以将用户移至Appstore来安装linkedin应用程序。
另一方面,我使用通过WebView登录。 但是当我登录时,不要在所需的ViewController
重定向。
这是我的代码-
if statusCode == 200 {
do {
let dataDictionary = try JSONSerialization.jsonObject(with: data!, options: JSONSerialization.ReadingOptions.mutableContainers) as? [String:AnyObject]
print("response dictionary ::: \(String(describing: dataDictionary!))")
let accessToken = dataDictionary?["access_token"] as! String
UserDefaults.standard.set(accessToken, forKey: "LIAccessToken")
UserDefaults.standard.synchronize()
/*This is the api function from here i go my desired ViewController*/
self.getProfileInfo ()
DispatchQueue.main.async(execute: { () -> Void in
self.dismiss(animated: true, completion: nil)
})
}
catch {
print("Could not convert JSON data into a dictionary.")
}
}
请提供通过WebView
和linkedin应用程序登录的解决方案。
您可以使用以下代码进行检查,也可以使用“ isInstalled”变量来进行linkedin的安装。 如果app不存在,请将此showGoToAppStoreDialog更改为false以导航到AppStore。
let isInstalled : Bool = UIApplication.shared.canOpenURL(URL(string: "linkedin://app")!)
print("\n linkedin app is there:",isInstalled)
LISDKSessionManager.createSession(withAuth: [LISDK_BASIC_PROFILE_PERMISSION,LISDK_EMAILADDRESS_PERMISSION], state: nil, showGoToAppStoreDialog: true, successBlock: { (returnState) -> Void in
print("success called!")
_ = LISDKSessionManager.sharedInstance().session
self.LinkedinLogindetails()
}) { (error) -> Void in
if error != nil
{
}
if(self.WebView.isHidden==true)
{
self.WebView.isHidden=false
self.CloseBtn.isHidden=false
}
self.linkedinkey = ""
self.linkedinsecret = ""
self.authendpoint = "https://www.linikedin.com/uas/oauth2/authorization"
self.accesstokenendpoint = "https://www.linikedin.com/uas/oauth2/accessToken"
let redirectURL = "https://com.appcoda.linkedin.oauth/oauth".addingPercentEncoding(withAllowedCharacters: CharacterSet.alphanumerics)!
let state = "linkedin\(Int(Date().timeIntervalSince1970))"
_ = "r_basicprofile,r_emailaddress"
let url = NSString(format:"https://www.linkedin.com/uas/oauth2/authorization?response_type=code&client_id=%@&scope=%@&state=%@&redirect_uri=%@",
self.linkedinkey,"r_basicprofile,r_emailaddress",state,redirectURL)
self.Loadurl(url as String)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.