从iOS应用程序中打开用户的Twitter个人资料页面

12

我想从我的应用程序深度链接到用户在Twitter本地应用程序上的个人资料页面。我已经为Twitter添加了模式规则,并使用以下代码:

    application.open(  URL(string:"twitter://user?screen_name=BarackObama", options[:],  completionHandler:{(success) in 
        print("Success")
    })

我可以成功打开Twitter应用,并在控制台打印“Success”,但我看到的是自己的Twitter动态而不是用户的Twitter页面。这个URL模式还有效吗?

谢谢


1
我在iOS 10.3.2上使用最新版本的Twitter应用程序(7.0)尝试了一下,并成功打开了您提到的Obama页面的URL。看起来没问题。 - Erfan
2个回答

29

好的,在Swift 4中实现这个有两个简单的步骤:

首先,你需要在Info.plist中使用LSApplicationQueriesSchemes列出Instagram和Facebook。只需将Info.plist打开为源代码,并粘贴此内容:

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>twitter</string>
</array>

之后,您可以打开 Twitter 应用程序。以下是完整的 Twitter 代码,您可以将此代码链接到任何作为操作的按钮上:

@IBAction func followOnTwitter(sender: AnyObject) {
   let screenName =  "AffordIt_App"
   let appURL = NSURL(string: "twitter://user?screen_name=\(screenName)")!
   let webURL = NSURL(string: "https://twitter.com/\(screenName)")!

   let application = UIApplication.shared

   if application.canOpenURL(appURL as URL) {
        application.open(appURL as URL)
   } else {
        application.open(webURL as URL)
   }
}

有关分享推文的任何想法吗? - Jigar Fumakiya
尝试一下这个:https://dev59.com/hpPea4cB1Zd3GeqP-A2R - kiril kiroski

11

使用以下代码在Swift 4中实现Twitter个人资料的分享:

    let screenName =  "NJMINISTRIESINC"
    let appURL = URL(string: "twitter://user?screen_name=\(screenName)")!
    let webURL = URL(string: "https://twitter.com/\(screenName)")!
    
    if UIApplication.shared.canOpenURL(appURL as URL) {
        if #available(iOS 10.0, *) {
            UIApplication.shared.open(appURL)
        } else {
            UIApplication.shared.openURL(appURL)
        }
    } else {
        //redirect to safari because the user doesn't have Twitter
        if #available(iOS 10.0, *) {
            UIApplication.shared.open(webURL)
        } else {
            UIApplication.shared.openURL(webURL)
        }
    }

1
不错,但请将评论从Instagram改为Twitter :) - Sebbo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接