Skip to content

Commit

Permalink
feat(users): direct link between apps for social networks ✨
Browse files Browse the repository at this point in the history
  • Loading branch information
PierreBrisorgueil committed Oct 19, 2020
1 parent c98080e commit fea5e1b
Show file tree
Hide file tree
Showing 3 changed files with 71 additions and 16 deletions.
7 changes: 7 additions & 0 deletions waosSwift/Info.plist
Expand Up @@ -60,5 +60,12 @@
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>linkedin</string>
<string>instagram</string>
<string>twitter</string>
<string>fb</string>
</array>
</dict>
</plist>
8 changes: 4 additions & 4 deletions waosSwift/config/default/development.json
Expand Up @@ -9,10 +9,10 @@
"links": {
"blog": "https://blog.weareopensource.me",
"site": "https://weareopensource.me",
"instagram": "https://instagram.com",
"twitter": "https://twitter.com",
"linkedin": "https://linkedin.com",
"facebook": "",
"instagram": "usename",
"twitter": "usename",
"linkedin": "companyid",
"facebook": "pageid",
"us": "https://weareopensource.me/us/",
"support": "https://developer.apple.com/support/",
"termsOfUse": "https://www.apple.com/legal/internet-services/terms/site.html",
Expand Down
72 changes: 60 additions & 12 deletions waosSwift/modules/user/controllers/UserController.swift
Expand Up @@ -245,30 +245,78 @@ private extension UserController {
//social networks
self.buttonInstagram.rx.tap
.subscribe(onNext: { _ in
guard let url = URL(string: (config["app"]["links"]["instagram"].string ?? "")) else { return }
let svc = SFSafariViewController(url: url)
self.present(svc, animated: true, completion: nil)
guard let appURL = URL(string: "instagram://user?username=\(config["app"]["links"]["instagram"].string ?? "")") else { return }
guard let webURL = URL(string: "https://instagram.com/\(config["app"]["links"]["instagram"].string ?? "")") else { return }
if UIApplication.shared.canOpenURL(appURL) {
if #available(iOS 10.0, *) {
UIApplication.shared.open(appURL, options: [:], completionHandler: nil)
} else {
UIApplication.shared.openURL(appURL)
}
} else {
if #available(iOS 10.0, *) {
UIApplication.shared.open(webURL, options: [:], completionHandler: nil)
} else {
UIApplication.shared.openURL(webURL)
}
}
})
.disposed(by: disposeBag)
self.buttonTwitter.rx.tap
.subscribe(onNext: { _ in
guard let url = URL(string: (config["app"]["links"]["twitter"].string ?? "")) else { return }
let svc = SFSafariViewController(url: url)
self.present(svc, animated: true, completion: nil)
guard let appURL = URL(string: "twitter://user?screen_name=\(config["app"]["links"]["twitter"].string ?? "")") else { return }
guard let webURL = URL(string: "https://twitter.com/\(config["app"]["links"]["twitter"].string ?? "")") else { return }
if UIApplication.shared.canOpenURL(appURL) {
if #available(iOS 10.0, *) {
UIApplication.shared.open(appURL, options: [:], completionHandler: nil)
} else {
UIApplication.shared.openURL(appURL)
}
} else {
if #available(iOS 10.0, *) {
UIApplication.shared.open(webURL, options: [:], completionHandler: nil)
} else {
UIApplication.shared.openURL(webURL)
}
}
})
.disposed(by: disposeBag)
self.buttonLinkedin.rx.tap
.subscribe(onNext: { _ in
guard let url = URL(string: (config["app"]["links"]["linkedin"].string ?? "")) else { return }
let svc = SFSafariViewController(url: url)
self.present(svc, animated: true, completion: nil)
guard let appURL = URL(string: "linkedin://company/\(config["app"]["links"]["linkedin"].string ?? "")") else { return }
guard let webURL = URL(string: "https://linkedin.com/company/\(config["app"]["links"]["linkedin"].string ?? "")") else { return }
if UIApplication.shared.canOpenURL(appURL) {
if #available(iOS 10.0, *) {
UIApplication.shared.open(appURL, options: [:], completionHandler: nil)
} else {
UIApplication.shared.openURL(appURL)
}
} else {
if #available(iOS 10.0, *) {
UIApplication.shared.open(webURL, options: [:], completionHandler: nil)
} else {
UIApplication.shared.openURL(webURL)
}
}
})
.disposed(by: disposeBag)
self.buttonFacebook.rx.tap
.subscribe(onNext: { _ in
guard let url = URL(string: (config["app"]["links"]["facebook"].string ?? "")) else { return }
let svc = SFSafariViewController(url: url)
self.present(svc, animated: true, completion: nil)
guard let appURL = URL(string: "fb://profile/\(config["app"]["links"]["facebook"].string ?? "")") else { return }
guard let webURL = URL(string: "https://www.facebook.com/\(config["app"]["links"]["facebook"].string ?? "")") else { return }
if UIApplication.shared.canOpenURL(appURL) {
if #available(iOS 10.0, *) {
UIApplication.shared.open(appURL, options: [:], completionHandler: nil)
} else {
UIApplication.shared.openURL(appURL)
}
} else {
if #available(iOS 10.0, *) {
UIApplication.shared.open(webURL, options: [:], completionHandler: nil)
} else {
UIApplication.shared.openURL(webURL)
}
}
})
.disposed(by: disposeBag)

Expand Down

0 comments on commit fea5e1b

Please sign in to comment.