如何点击swift
中的按钮打开Facebook和Instagram应用?某些应用重定向到Facebook应用并打开特定页面。我怎么能做同样的事情?
我找到了它:
var url = NSURL(string: "itms://itunes.apple.com/de/app/x-gift/id839686104?mt=8&uo=4")
if UIApplication.sharedApplication().canOpenURL(url!) {
UIApplication.sharedApplication().openURL(url!)
}
但我必须知道应用URL
。其他例子在ObjectiveC
,我不知道= /
答案 0 :(得分:26)
看看这些链接,它可以帮到你:
https://instagram.com/developer/mobile-sharing/iphone-hooks/
http://wiki.akosma.com/IPhone_URL_Schemes
Open a facebook link by native Facebook app on iOS
否则,Instagram上有一个快速示例,用于打开特定的个人资料(昵称:johndoe):
var instagramHooks = "instagram://user?username=johndoe"
var instagramUrl = NSURL(string: instagramHooks)
if UIApplication.sharedApplication().canOpenURL(instagramUrl!) {
UIApplication.sharedApplication().openURL(instagramUrl!)
} else {
//redirect to safari because the user doesn't have Instagram
UIApplication.sharedApplication().openURL(NSURL(string: "http://instagram.com/")!)
}
答案 1 :(得分:22)
Swift 4和iOS 10 +的更新
好的,在Swift 3中有两个简单的步骤来实现这一点:
首先,您必须修改Info.plist
以列出instagram
和facebook
LSApplicationQueriesSchemes
。只需打开Info.plist
作为源代码,然后粘贴:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>instagram</string>
<string>fb</string>
</array>
之后,您可以使用instagram
和facebook
打开instagram://
和fb://
个应用。这是一个完整的Instagram代码,您也可以为Facebook做同样的事情,您可以将此代码链接到您作为操作的任何按钮:
@IBAction func InstagramAction() {
let Username = "instagram" // Your Instagram Username here
let appURL = URL(string: "instagram://user?username=\(Username)")!
let application = UIApplication.shared
if application.canOpenURL(appURL) {
application.open(appURL)
} else {
// if Instagram app is not installed, open URL inside Safari
let webURL = URL(string: "https://instagram.com/\(Username)")!
application.open(webURL)
}
}
对于facebook
,您可以使用以下代码:
let appURL = URL(string: "fb://profile/\(Username)")!
答案 2 :(得分:8)
在swift 3中;
首先,您应该在Info.plist上添加它
您可以使用此代码;
let instagramUrl = URL(string: "instagram://app")
UIApplication.shared.canOpenURL(instagramUrl!)
UIApplication.shared.open(instagramUrl!, options: [:], completionHandler: nil)
答案 3 :(得分:6)
实际上,您不再需要使用网络和应用程序URL。如果用户拥有该网址,它将在应用程序中自动打开。 Instagram或其他应用最终将其实现为Universal Link
快捷键4
func openInstagram(instagramHandle: String) {
guard let url = URL(string: "https://instagram.com/\(instagramHandle)") else { return }
if UIApplication.shared.canOpenURL(url) {
if #available(iOS 10.0, *) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
} else {
UIApplication.shared.openURL(url)
}
}
}
答案 4 :(得分:5)
在swift 4中:
只需更改 appURL 和 webURL :
twitter://user?screen_name=\(screenName)
instagram://user?screen_name=\(screenName)
facebook://user?screen_name=\(screenName)
- &#39;的OpenURL&#39;在iOS 10.0中已弃用:
let screenName = "imrankst1221"
let appURL = NSURL(string: "instagram://user?screen_name=\(screenName)")!
let webURL = NSURL(string: "https://twitter.com/\(screenName)")!
if UIApplication.shared.canOpenURL(appURL as URL) {
if #available(iOS 10.0, *) {
UIApplication.shared.open(appURL as URL, options: [:], completionHandler: nil)
} else {
UIApplication.shared.openURL(appURL as URL)
}
} else {
//redirect to safari because the user doesn't have Instagram
if #available(iOS 10.0, *) {
UIApplication.shared.open(webURL as URL, options: [:], completionHandler: nil)
} else {
UIApplication.shared.openURL(webURL as URL)
}
}
答案 5 :(得分:3)
基于接受的答案,这里是使用Swift 4更优雅地完成此任务的方法
UIApplication.tryURL([
"instagram://user?username=johndoe", // App
"https://www.instagram.com/johndoe/" // Website if app fails
])
并且真的记得添加方案以允许应用程序打开。但即使您忘记了Instagram将在Safari中打开。
tryUrl是一个类似于此处所示的扩展程序:https://stackoverflow.com/a/29376811/704803
答案 6 :(得分:2)
在swift5中使用此
guard let instagram = URL(string: "https://www.instagram.com/yourpagename") else { return }
UIApplication.shared.open(instagram)
答案 7 :(得分:0)
首先,您必须修改Info.plist
以列出instagram
和facebook
和LSApplicationQueriesSchemes
。只需打开Info.plist
作为源代码,然后将其粘贴:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>instagram</string>
<string>fb</string>
</array>
当您要打开Facebook应用并直接转到Facebook页面时,请使用页面ID。这是一个链接,您可以在其中找到它们:https://www.facebook.com/help/1503421039731588
fb:// profile-在用户的个人资料 OR 页面上打开Facebook应用
fb:// friends –在好友列表中打开Facebook应用
fb:// notifications –将Facebook应用打开到通知列表(注意:此URL似乎存在一个错误。“通知”页面打开。但是,无法导航到Facebook中的其他任何地方应用)
fb:// feed-将Facebook应用程序打开到新闻源
fb:// events –在事件页面打开Facebook应用
fb:// requests –在请求列表中打开Facebook应用
fb:// notes –在“笔记”页面打开Facebook应用
fb:// albums –打开Facebook应用到相册列表 来源:https://stackoverflow.com/a/10416399/8642838
Button(action: {
let url = URL(string: "fb://profile/<PAGE_ID>")!
let application = UIApplication.shared
// Check if the facebook App is installed
if application.canOpenURL(url) {
application.open(url)
} else {
// If Facebook App is not installed, open Safari with Facebook Link
application.open(URL(string: "https://de-de.facebook.com/apple")!)
}
}, label: {
Text("Facebook")
})
答案 8 :(得分:0)
从你的应用程序打开 Instagram 或 Facebook 页面,它对我有用 只是为了使用 www.facebook.com/user 或 www.instagram.com/user
之类的链接这样做时,Instagram 和 Facebook 应用程序会自动打开。