2016-07-30 40 views

回答

0

1.創建一個UIActivity的子類。

實現類的所有required methods,並初始化活動時,通過在頁面的URL在這一點上和初始化UIViewController,爲prepareWithActivityItems:是不是SFSafariViewController上下文(rdar://24138390)中調用。如果您的活動未顯示UI,請在初始化期間保存URL,以便在用戶點擊該操作時處理該URL。

完整的示例:

@interface YourActivity : UIActivity { 
    UIViewController *activityViewController; 
} 
- (id)initWithURL:(NSURL *)url; 
@end 


@implementation YourActivity 

- (id)initWithURL:(NSURL *)url 
{ 
    self = [super init]; 
    if (self) 
    { 
     [self prepareWithURL:url]; 
    } 
    return self; 
} 

- (NSString *)activityType 
{ 
    return @"YourTypeName"; 
} 

- (NSString *)activityTitle 
{ 
    return @"Perform Action"; 
} 

- (UIImage *)activityImage 
{ 
    return [UIImage imageNamed:@"YourActionIcon"]; 
} 

- (BOOL)canPerformWithActivityItems:(NSArray *)activityItems 
{ 
    return YES; 
} 

- (void)prepareWithActivityItems:(NSArray *)activityItems 
{ 
    NSURL* url = nil; 
    for (NSObject* obj in activityItems) 
    { 
     if ([obj isKindOfClass:[NSURL class]]) 
     { 
      url = (NSURL*)obj; 
     } 
    } 

    [self prepareWithURL:url]; 
} 

- (void) prepareWithURL:(NSURL*)url 
{ 
    // initialize your UI using the given URL 
    activityViewController = ... // initialize your UI here 
} 

- (UIViewController *)activityViewController 
{ 
    return activityViewController; 
} 

+ (UIActivityCategory)activityCategory 
{ 
    return UIActivityCategoryShare; 
} 


@end 

2.添加UIActivitySFSafariViewController

實現下面的方法在你的SFSafariViewControllerDelegate,初始化活動,通過在用戶正在瀏覽的網頁的URL。

- (NSArray<UIActivity *> *)safariViewController:(SFSafariViewController *)controller 
          activityItemsForURL:(NSURL *)URL 
              title:(NSString *)title 
{ 
    YourActivity* activity = [[YourActivity alloc] initWithURL:URL]; 
    return @[activity]; 
} 
相關問題