TwitterKit iOS SDK计算图像和URL以防止字符数

时间:2016-11-03 20:48:42

标签: ios swift twitter

我正在使用最新版本的TwitterKit(2.5),当我尝试与图像和URL共享Tweet时,TWTRComposer会根据字符数对它们进行计数。 Twitter is supposed to no longer count media against the character count,实际上我可以在网上发布完全相同的推文,我无法在应用内发帖(应用说它太长了)。

在我目前的用例中,我的实际推文文字是100个字符。使用图像和URL,TWTRComposer显示我超过限制的8个字符。但是,我可以使用Chrome中完全相同的内容发布这个完全相同的推文,其中包含16个字符。

这是一个已知的错误吗?

代码段:

func didTapShareToTwitter() {
        // Configure composer
        let composer = TWTRComposer()

        composer.setText(composerText)          
        composer.setURL(shareURL)

        if shareImageURL != nil {
            if let imageData = NSData(contentsOfURL: shareImageURL!) {
                composer.setImage(UIImage(data: imageData))
            }
        }

        // Present composer
        composer.showFromViewController(self) { result in
            if (result == TWTRComposerResult.Cancelled) {
                log("Tweet composition cancelled.")
            }
            else {
                log("Sending tweet...")
            }
        }

    }

1 个答案:

答案 0 :(得分:0)

看起来这是一个iOS系统级错误,不一定是Twitter SDK。 TWTRComposer实际上只是内置iOS共享视图控制器SLComposeViewController的包装。

从最新的iOS版本10.1开始,iOS SLComposeViewController仍会根据Twitter的总字符数限制(140)计算附加的URL和图像。最有可能的是,苹果公司刚刚没有更新他们的操作系统代码,因为Twitter在今年早些时候不再计算图像和网址的数量。

经过一些测试后,我得出以下结论:

  • 在iOS上,无论原始长度如何,网址都会计为23个字符 URL是。
  • 在iOS上,无论如何,图像都会计为23个字符 它的大小。
  • 因此,使用图片和网址,我们只有94个字符 可通过iOS per Tweet获取。而且没有什么可以做的 关于它,除非Twitter更新他们的SDK或Apple更新 SLComposeViewController。