【问题标题】:Open Twitter settings in Settings app在“设置”应用中打开 Twitter 设置
【发布时间】:2011-12-12 04:48:45
【问题描述】:

我知道我可以使用

在 iOS 5 中打开设置应用程序
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs://"]];

但是有没有办法直接打开 Twitter 设置页面?当您尝试呈现 TWTweetComposeViewController 并且您尚未设置 Twitter 帐户时,可以看到所需的功能。

【问题讨论】:

标签: iphone twitter settings ios5


【解决方案1】:

试试,

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=TWITTER"]];    

【讨论】:

  • 太棒了。我真的希望“prefs:root=LocationServices”能起作用……但是唉:(
  • 任何想法让它适用于第三方应用程序设置?我尝试使用我的应用程序的捆绑显示名称,但它不起作用。编辑:它有效!它区分大小写。
  • 最近有没有人因为使用 twitter pref url 而遇到过应用被拒绝的经历?由于这些是私人 api 调用,我希望即使指导用户添加 Twitter 帐户仍会被拒绝? (尽管任何有常识的人都可以看到将用户引导至设置是正确的做法)
  • @Nik 我在生产应用中有这个,没有一个被拒绝
  • @cirrostratus 是 5.1 破坏首选项导致您的用户问题?
【解决方案2】:

我发现 root 值是 Preferences.app 的“Settings.strings”文件中找到的本地化字符串的键。以下是我测试过的一些值:

一般:一般
iCloud:城堡
邮件:ACCOUNT_SETTINGS
推特:推特
野生动物园:野生动物园
音乐:音乐
视频:视频
照片:照片
备注:备注
商店:STORE

但是我不知道如何使用我自己的应用设置来执行此操作。
prefs:root=Apps&path= 似乎不起作用。

【讨论】:

    【解决方案3】:

    @萨希尔

    使用

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=LOCATION_SERVICES"]];    
    

    直接打开定位服务

    【讨论】:

      【解决方案4】:

      已经给出了很棒的答案,但这里是完整的 sn-p 使用 UIAlertControllerSwift 3 在设置中打开 twitter 设置:

       let alert = UIAlertController(title: "No Twitter Accounts", message: "There are no Twitter accounts configured. You can add or create a Twitter account in Settings.", preferredStyle: .alert)
              let firstAction = UIAlertAction(title: "Cancel", style: .default, handler: {(action: UIAlertAction) -> Void in
      
              })
              let secondAction = UIAlertAction(title: "Settings", style: .default, handler: {(action: UIAlertAction) -> Void in
      
                  let url = URL(string:"App-Prefs:root=TWITTER")!
                  if #available(iOS 10.0, *) {
                      UIApplication.shared.open(url, options: [:], completionHandler: nil)
                  } else {
                      UIApplication.shared.openURL(url)
                  }
              })
              alert.addAction(firstAction)
              alert.addAction(secondAction)
              self.present(alert, animated: true, completion: nil)
      

      【讨论】:

        【解决方案5】:

        只显示作曲家。如果没有可用的 Twitter 帐户,它将显示一个 AlertView 以转到设置

        var controller = SLComposeViewController(forServiceType: SLServiceTypeTwitter)
        controller.setInitialText("My Post")
        self.presentViewController(controller, animated: true, completion: nil)
        

        【讨论】:

          【解决方案6】:

          不推荐使用prefs:root 方案。这很可能是设备上 iOS 更新的重大变化,并可能导致您的应用被应用商店拒绝。

          https://gist.github.com/phynet/471089a51b8f940f0fb4

          【讨论】:

            猜你喜欢
            • 2012-04-12
            • 2012-07-04
            • 2017-08-08
            • 2020-01-28
            • 2021-04-21
            • 1970-01-01
            • 2011-06-23
            • 1970-01-01
            • 2015-08-03
            相关资源
            最近更新 更多