8

記事のタイトルと記事の URL を twitter に投稿し、ツイートの最後にアプリの名前を追加しようとしています。だから何か

「サボテンの育て方(@appname経由)」添付URL

ツイートが 140 文字を超えないように、タイトルと URL の長さのバランスをとる方法を見つけるのに苦労しました。そのため、URL が非常に長い場合は、140 文字未満になるように記事のタイトルの一部を切り取ってください。

Twitter のガイドラインをSLComposeViewController見ると、この部分について次のように述べられています。

初期コンテンツを設定するメソッドはブール値で応答することに注意してください。これにより、開発者は、初期化するツイートの本文の現在の文字数を気にする必要がなくなります。メソッドが YES を返した場合、コンテンツを追加するのに十分な余地がありました。メソッドが NO を返した場合、追加しようとしたコンテンツは 140 文字を超えるツイートになります。文字カウントのロジックは、t.co URL ラッピングに必要な現在の文字数も有効にします。

(「コード例」セクションより。)

そのため、次のコードを作成してツイートを作成し、URL の長さと記事の長さのバランスをとります。

if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter]) {
    SLComposeViewController *twitterViewController = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter];
    [twitterViewController addURL:[NSURL URLWithString:self.article.url]];

    NSString *titleToShare = self.article.title;
    while ([twitterViewController setInitialText:[NSString stringWithFormat:@"%@ (via @SyllableApp)", titleToShare]]) {
        titleToShare = [titleToShare substringToIndex:titleToShare.length - 1];
    }

    [self presentViewController:twitterViewController animated:YES completion:nil];
}

これは基本的に URL を追加し、必要な長さに近づけるために、返されるたびにタイトルの長さを 1 ずつ減らして、setInitialText:返されるまでメソッドをループすることにより、ツイートの残りの部分を作成します。YESNO

しかし、決して YES! を返しません。そうすべきだとわかっていても。タイトルの長さは 105 文字、URL は 55 文字で、アプリのクレジットが含まれているため、140 文字を超える可能性がある記事を 1 つ使用していました。したがって、理論的には、タイトルを短くしてから追加できるはずですが、それは決して起こりません.

どうしたの?でリンクの添付を行うにはどうすればよいSLComposeViewControllerですか?

4

4 に答える 4

2

while ([twitterViewController setInitialText:[NSString stringWithFormat:@"%@ (via @SyllableApp)", titleToShare]]) => while (![twitterViewController setInitialText:[NSString stringWithFormat:@"%@ (via @SyllableApp)", titleToShare]])

あります!状態が欠けているので、ポストが長すぎるときではなく、収まるときにポストを短くします;)

于 2013-11-11T08:22:54.873 に答える