Tôi lấy câu trả lời này và tạo một lớp đơn giản cho nó. Thông báo mặc định sẽ được nhìn thấy bằng cách chia sẻ các cửa hàng khác với Twitter, và đối với các từ Twitter trong mảng hashWords sẽ xuất hiện với băm nếu chúng xuất hiện trong thông báo mặc định. Tôi nghĩ rằng tôi sẽ chia sẻ nó cho bất cứ ai khác, những người cần nó. Cảm ơn Christopher!
Cách sử dụng:
TwitterHashActivityItemProvider *twit = [[TwitterHashActivityItemProvider alloc] initWithDefaultText:@"I really like stackoverflow and code"
hashWords:@[@"stackoverflow", @"code"]];
NSArray *items = @[twit];
UIActivityViewController *act = [[UIActivityViewController alloc] initWithActivityItems:items applicationActivities:nil];
Tiêu đề:
@interface TwitterHashActivityItemProvider : UIActivityItemProvider
- (id)initWithDefaultText:(NSString*)text hashWords:(NSArray*)hashItems;
@property (nonatomic,strong) NSArray *hashItems;
@end
Thực hiện:
#import "TwitterHashActivityItemProvider.h"
@implementation TwitterHashActivityItemProvider
- (id)initWithDefaultText:(NSString*)text hashWords:(NSArray*)hashItems;
{
self = [super initWithPlaceholderItem:text];
if (self)
{
self.hashItems = hashItems;
}
return self;
}
- (id)item
{
if ([self.placeholderItem isKindOfClass:[NSString class]])
{
NSString *outputString = [self.placeholderItem copy];
// twitter gets some hash tags!
if (self.activityType == UIActivityTypePostToTwitter)
{
// go through each potential hash item and augment the main string
for (NSString *hashItem in self.hashItems)
{
NSString *hashed = [@"#" stringByAppendingString:hashItem];
outputString = [outputString stringByReplacingOccurrencesOfString:hashItem withString:hashed];
}
}
return outputString;
}
// else we didn't actually provide a string...oops...just return the placeholder
return self.placeholderItem;
}
@end
Cảm ơn bạn rất nhiều vì câu trả lời này :) – Ertai
Một số mã ví dụ sẽ là tuyệt vời để xác thịt câu trả lời này ra –
Great câu trả lời, cảm ơn. Thêm một ví dụ nhanh chóng dưới đây. – pkorosec