首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果linkedin应用程序已安装在iPhone设备上,则Swift 3LinkedIn集成条件

如果linkedin应用程序已安装在iPhone设备上,则Swift 3LinkedIn集成条件
EN

Stack Overflow用户
提问于 2018-03-29 20:24:36
回答 1查看 375关注 0票数 1

我在我的应用中遇到了一些linkedin集成的问题。因为领英应用已经安装在我的iPhone设备上了。但是每当我想要通过linkedin应用程序登录应用程序时,它总是让我在AppStore中安装linkedin。我的问题是如何检查linkedin应用程序是否已安装。如果已经安装了linkedin应用程序,那么我可以直接通过linkedin登录并转到我想要的ViewController。否则,我可以将用户移动到Appstore以安装linkedin应用程序。

另一方面,我使用了通过WebView登录。但是当我登录时,不要重定向到我想要的ViewController

下面是我的代码-

代码语言:javascript
运行
复制
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和领英app登录领英的解决方案。

EN

回答 1

Stack Overflow用户

发布于 2018-03-29 20:43:41

您可以使用以下代码进行检查,也可以使用"isInstalled“变量检查linkedin的安装情况。如果应用程序不在那里,则将此showGoToAppStoreDialog更改为false以导航到AppStore。

代码语言:javascript
运行
复制
   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)

            }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49556027

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档