gpt4 book ai didi

ios - 如何为 Twitter/action sheet 设置社交分享异常(exception)?

转载 作者:可可西里 更新时间:2023-11-01 03:19:45 25 4
gpt4 key购买 nike

我正在使用以下代码在我的应用中调用操作表共享:

- (IBAction)sendPost:(id)sender
{
NSArray *activityItems = nil;
UIImage *appIcon = [UIImage imageNamed:@"appIcon.png"];
NSString *postText = [[NSString alloc] initWithFormat:@"LETS ASSUME THIS STRING IS LONGER THAN 140 CHARACTERS THAT TWITTER PROHIBITS BUT CAN STILL BE SHARED VIA FACEBOOK, EMAIL, TEXT"];
activityItems = @[postText,appIcon];
UIActivityViewController *activityController = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
[self presentViewController:activityController animated:YES completion:nil];
}

问题是这样的:postText 超过 140 个字符,因此无法通过 twitter 进行分享,字符数将为 -x(红色字符数,您已超过order to share via twitter),我的问题是:我如何做一个异常(exception),以便在选择 twitter 进行共享时使用一条不同的消息说 shortPostText ?

一旦发送了 sendPost 操作,我就看不到为 twitter 显式设置字符串的方法,一旦你在这里:

enter image description here

编辑:我不明白为什么有人会对这个问题投反对票,我不是在问如何制作 if/else 语句或如何编程。这是一个真正的问题,需要一个真正的答案。

更新:我需要解决这个问题,因为这是当用户尝试在我的应用程序中通过 Twitter 分享时我得到的:

enter image description here

一个红色/负字符指示器和一个非事件的发布按钮,因此除非该字符数下降到 0 或更少,否则将不允许该帖子进入 Twitter。

最佳答案

TL;DR 使用 UIActivityItemSource特殊情况下的负载,具体取决于用户的选择。

试试这个:

- (IBAction)sendPost:(id)sender
{
UIImage *appIcon = [UIImage imageNamed:@"appIcon.png"];
NSString *postText = [[NSString alloc] initWithFormat:@"LETS ASSUME THIS STRING IS LONGER THAN 140 CHARACTERS THAT TWITTER PROHIBITS BUT CAN STILL BE SHARED VIA FACEBOOK, EMAIL, TEXT"];
TextItemSource *itemSource = [[TextItemSource alloc] initWithString:postText previewImage:appIcon];
UIActivityViewController *activityController = [[UIActivityViewController alloc] initWithActivityItems:@[itemSource] applicationActivities:nil];
[self presentViewController:activityController animated:YES completion:nil];
}

// ------- TextItemSource.h
@interface TextItemSource : NSObject <UIActivityItemSource>
- (id)initWithString:(NSString *)string previewImage:(UIImage *)previewImage;
@end

// ------- TextItemSource.m
@implementation TextItemSource
{
NSString *_string;
UIImage *_previewImage;
}

- (id)initWithString:(NSString *)string previewImage:(UIImage *)previewImage
{
self = [super init];
if (self) {
_string = [string copy];
_previewImage = previewImage;
}
return self;
}

- (id)activityViewControllerPlaceholderItem:(UIActivityViewController *)activityViewController
{
return _string;
}

- (id)activityViewController:(UIActivityViewController *)activityViewController itemForActivityType:(NSString *)activityType
{
NSString *string = _string;
if ([activityType isEqual:UIActivityTypePostToTwitter]) {
#pragma mark TODO: do smarter thing :)
string = [_subject substringToIndex:140];
}
return string;
}

- (UIImage *)activityViewController:(UIActivityViewController *)activityViewController thumbnailImageForActivityType:(NSString *)activityType suggestedSize:(CGSize)size
{
// might want to scale image to fit suggestedSize
return _previewImage;
}
@end

关于ios - 如何为 Twitter/action sheet 设置社交分享异常(exception)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19851380/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com