Skip to content

Drop in sharing features for all iPhone and iPad apps

Notifications You must be signed in to change notification settings

VilemKurz/ShareKit

 
 

Repository files navigation

Build Status

ShareKit allows you to share content easily:

- (void)myButtonHandlerAction {

    // Create the item to share (in this example, a url)
    NSURL *url = [NSURL URLWithString:@"http://getsharekit.com"];
    SHKItem *item = [SHKItem URL:url title:@"ShareKit is Awesome!" contentType:SHKURLContentTypeWebpage];
    
    // Get the ShareKit action sheet
    SHKActionSheet *actionSheet = [SHKActionSheet actionSheetForItem:item];

    // ShareKit detects top view controller (the one intended to present ShareKit UI) automatically,
    // but sometimes it may not find one. To be safe, set it explicitly
    [SHK setRootViewController:self];
    
    // Display the action sheet
    if (NSClassFromString(@"UIAlertController")) {
        
        //iOS 8+
        SHKAlertController *alertController = [SHKAlertController actionSheetForItem:item];
        [alertController setModalPresentationStyle:UIModalPresentationPopover];
        UIPopoverPresentationController *popPresenter = [alertController popoverPresentationController];
        popPresenter.barButtonItem = self.toolbarItems[1];
        [self presentViewController:alertController animated:YES completion:nil];
        
    } else {
        
        //deprecated
        SHKActionSheet *actionSheet = [SHKActionSheet actionSheetForItem:item];
        [actionSheet showFromToolbar:self.navigationController.toolbar];
    }

}

Everything else (user authentication, API calls, shareUI etc) is handled by ShareKit. Moreover, you can use and customise SHKAccountsViewController (where users can login/logoff, displays username if someone is logged to a particular service) and SHKUploadsViewController (similar to safari downloads, works with sharers able to report progress). For a brief introduction, check the demo app. To know more about configuration options see DefaultSHKConfigurator.m. To know more about what type of content can be shared, see SHKItem.h. To find out what services and actions are supported, check Sharer implementations. To get a picture of what they are capable of check their .m (implementation) files, methods named:

+ (BOOL)canShareURL;
+ (BOOL)canShareImage;
+ (BOOL)canShareText;
+ (BOOL)canShareFile:(SHKFile *)file;

should tell you everything you need.

Documentation

The latest documentation and installation instructions can be found on the ShareKit Wiki. To get a preview of new features see Changelog.

!!! Updated new service creation guidelines for contributors + updated service templates are here !!!

ShareKit 2

In order to make it easier for new users to choose a canonical fork of ShareKit, the ShareKit community has decided to band together and take responsibility for collecting useful commits into what we're calling "ShareKit 2". It is now ready for you. It is the first officially stable version of ShareKit since February 2010, with more frequent updates expected.

Highlights:

  • many new sharers
  • new UI (currently used by Facebook, Plurk and LinkedIn, more to follow)
  • iOS native social.framework based sharers
  • optimised for easy updating (subproject library + 3rd party code as git submodules)
  • uses ARC and block callbacks

You can follow the initial planning at ideashower/ShareKit#283.

As ShareKit is now community driven, you are welcome to help, to judge new features, review pull requests etc.. There are many ways you can help, see FAQ

Credits

ShareKit was created by Nate Weiner, is updated by contributors and is maintained by Vilém Kurz.

About

Drop in sharing features for all iPhone and iPad apps

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Objective-C 98.3%
  • C 1.2%
  • Other 0.5%