iOS8新特性擴展(Extension)應用之二——分享插件

iOS8新特性擴展(Extension)應用之二——分享插件

        在上一篇博客中,介紹了iOS8新特性擴展功能之一的Today功能:http://my.oschina.net/u/2340880/blog/485533,這裏咱們再介紹一下分享的擴展功能。app

      在iOS8以前,除了一些主流的社交平臺,例如蘋果支持內容分享外,其餘開發者的應用若要加入分享的功能,將會十分的複雜。在iOS8的新特性中,apple爲咱們準備了這樣的擴展功能。函數

首先建立工程,在咱們的工程中新建一個Target:post

以後,模板中會爲咱們建立一個controller類,這個controller用於控制咱們的分享插件,裏面內容:測試

@implementation ShareViewController
//這個函數用於判斷分享內容的可用性,咱們在其中獲取分享的內容進行檢查
- (BOOL)isContentValid {
    // Do validation of contentText and/or NSExtensionContext attachments here
    return YES;
}
//點擊post按鈕後出發的方法,咱們能夠在這裏將分享的內容進行上傳等操做
- (void)didSelectPost {
    // This is called after the user selects Post. Do the upload of contentText and/or NSExtensionContext attachments.
    
    // Inform the host that we're done, so it un-blocks its UI. Note: Alternatively you could call super's -didSelectPost, which will similarly complete the extension context.
    [self.extensionContext completeRequestReturningItems:@[] completionHandler:nil];
}
//這裏用於設置分享插件的附件按鈕
- (NSArray *)configurationItems {
    // To add configuration options via table cells at the bottom of the sheet, return an array of SLComposeSheetConfigurationItem here.
    return @[];
}

@end

除此以外,還有一些經常使用的屬性:動畫

- (void)presentationAnimationDidFinish;spa

彈出視圖動畫結束後執行的方法.net

@property (readonly, NS_NONATOMIC_IOSONLY) NSString *contentText;插件

分享的內容文字code

@property (copy, NS_NONATOMIC_IOSONLY) NSString *placeholder;orm

默認顯示的提示文字

- (void)didSelectCancel;

取消按鈕執行的方法

咱們在代碼中以下添加後運行:

@implementation ShareViewController
-(NSString *)placeholder{
    return @"提示文字";
}
- (NSArray *)configurationItems {
    // To add configuration options via table cells at the bottom of the sheet, return an array of SLComposeSheetConfigurationItem here.
    SLComposeSheetConfigurationItem * item =[[SLComposeSheetConfigurationItem alloc]init];
    item.title=@"地點";
    item.value=@"城門";
    return @[item];
}

咱們用系統的相冊作測試,點擊相片的分享按鈕:

點擊MORE,添加咱們的擴展插件。

這時分享欄中多了一個咱們的插件,點擊效果以下:

 

還有一點咱們須要瞭解,在這個擴展的plist文件中,有這樣一個鍵:NSExtensionAttributes,裏面有一個NSExtensionActivationRule的字典,其中能夠設置一些鍵值,對分享插件的屬性進行控制。

這些鍵的寫法在官方文檔中的介紹以下:

這些鍵的意義,文檔中介紹的很清楚,咱們能夠根據須要進行設置。

專一技術,熱愛生活,交流技術,也作朋友。

——琿少 QQ羣:203317592

相關文章
相關標籤/搜索