繁体   English   中英

如果已在iPhone设备中安装了linkedin应用,则Swift 3会集成条件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM