diff --git a/README.md b/README.md index 87c6eab..e86389f 100644 --- a/README.md +++ b/README.md @@ -9,8 +9,10 @@ iOS 6 introduced the "share sheet"—a simple native interface to launch actions // init Readability activity ReadabilityActivity *rdb = [[ReadabilityActivity alloc] init]; -// set up activity item / action. url is a NSURL -NSArray *activityItems = @[ReadabilityActivityAdd, url]; +NSURL *url = [NSURL URLWithSting:@"http://example.com"]; + +// set up activity item / action +NSArray *activityItems = @[url]; // init share sheet with app-specific activity UIActivityViewController *shareSheet = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:@[rdb]]; diff --git a/ReadabilityActivity.h b/ReadabilityActivity.h old mode 100644 new mode 100755 index 2476ec5..6ba1294 --- a/ReadabilityActivity.h +++ b/ReadabilityActivity.h @@ -7,9 +7,6 @@ #import -extern NSString * const ReadabilityActivityURI; -extern NSString * const ReadabilityActivityAdd; - @interface ReadabilityActivity : UIActivity { @private NSArray *_activityItems; diff --git a/ReadabilityActivity.m b/ReadabilityActivity.m old mode 100644 new mode 100755 index 1c38d54..b88a82a --- a/ReadabilityActivity.m +++ b/ReadabilityActivity.m @@ -7,8 +7,8 @@ #import "ReadabilityActivity.h" -NSString * const ReadabilityActivityURI = @"readability://"; -NSString * const ReadabilityActivityAdd = @"add"; +static NSString * const ReadabilityActivityURI = @"readability://"; +static NSString * const ReadabilityActivityAdd = @"add"; @implementation ReadabilityActivity @@ -22,10 +22,8 @@ - (NSString *)activityTitle return @"Readability"; } -- (UIImage *)activityImage -{ - if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) - { +- (UIImage *)activityImage { + if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { return [UIImage imageNamed:@"Readability-activity-iPad"]; } @@ -34,6 +32,14 @@ - (UIImage *)activityImage - (BOOL)canPerformWithActivityItems:(NSArray *)activityItems { + if (![ReadabilityActivity canPerformActivity]) { + return NO; + } + for (NSObject *item in activityItems) { + if (![item isKindOfClass:[NSURL class]] && ![item isKindOfClass:[NSString class]]) { + return NO; + } + } return YES; } @@ -42,28 +48,27 @@ - (void)prepareWithActivityItems:(NSArray *)activityItems _activityItems = activityItems; } -- (void)performActivity -{ - if ([ReadabilityActivity canPerformActivity]) - { - NSString *activityAction = _activityItems[0]; - NSURL *activityURL = _activityItems[1]; +- (void)performActivity { + if ([ReadabilityActivity canPerformActivity]){ + NSString *activityURL = nil; - NSString *readabilityURLString = [NSString stringWithFormat:@"%@%@/%@", ReadabilityActivityURI, activityAction, [activityURL absoluteString]]; - NSURL *readabilityURL = [NSURL URLWithString:readabilityURLString]; + if([_activityItems[0] isKindOfClass:[NSURL class]]) { + activityURL = [_activityItems[0] absoluteString]; + + } else { + activityURL = _activityItems[0]; + } - [[UIApplication sharedApplication] openURL:readabilityURL]; + NSString *readabilityURLString = [NSString stringWithFormat:@"%@%@/%@", ReadabilityActivityURI, ReadabilityActivityAdd, activityURL]; + [[UIApplication sharedApplication] openURL:[NSURL URLWithString:readabilityURLString]]; [self activityDidFinish:YES]; - } - else - { + } else{ [self activityDidFinish:NO]; } } -+ (BOOL)canPerformActivity -{ ++ (BOOL)canPerformActivity { if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:ReadabilityActivityURI]]) { return YES;