I rozwiązać w Objective-C, dodając niestandardowe UIActivityItemProvider
:
#import "CustomUiActivityItemProvider.h"
@implementation CustomUiActivityItemProvider
- (id)initWithText:(NSString *)text{
if ((self = [super initWithPlaceholderItem:text])) {
self.text = text ?: @"";
self.url = @"";
}
return self;
}
- (id)item {
NSString *activityType = self.activityType;
if ([self.placeholderItem isKindOfClass:[NSString class]]) {
if ([self.activityType isEqualToString:UIActivityTypePostToFacebook]) {
self.url = [[NSString alloc] initWithFormat:@"%@&utm_source=facebook", self.text];
} else if ([activityType isEqualToString:UIActivityTypePostToTwitter]) {
self.url = [[NSString alloc] initWithFormat:@"%@&utm_source=twitter", self.text];
} else if ([activityType isEqualToString:UIActivityTypeMessage]) {
self.url = [[NSString alloc] initWithFormat:@"%@&utm_source=message", self.text];
} else if([activityType isEqualToString:UIActivityTypeMail]){
self.url = [[NSString alloc] initWithFormat:@"%@&utm_source=email", self.text];
} else if ([activityType isEqualToString:UIActivityTypePostToWeibo]){
self.url = [[NSString alloc] initWithFormat:@"%@&utm_source=weibo", self.text];
}else{
self.url = [[NSString alloc] initWithFormat:@"%@&utm_source=other", self.text];
}
return self.url;
}
return self.placeholderItem;
}
@end
i używając go tak:
CustomUiActivityItemProvider *customProvider = [[CustomUiActivityItemProvider alloc] initWithText:urlString];
UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:@[customProvider]
applicationActivities:nil];
activityVC.excludedActivityTypes = @[UIActivityTypePrint, UIActivityTypeCopyToPasteboard, UIActivityTypeAssignToContact, UIActivityTypeSaveToCameraRoll];
activityVC.completionHandler = ^(NSString *activityType, BOOL completed) {
// CODE....
}
[self presentViewController:activityVC animated:YES completion:nil];
trzeba dzielić na różne 'url' ** Twitterze ** i ** facebook ** za pomocą 'UIActivityController'.? – Gokul
Tak, dokładnie. :-) – Napolux
Powiel: [Ustaw różne elementy aktywności dla Swift UIActivityViewController] (http://stackoverflow.com/q/30063708/2415822) – JAL