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

简介:

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

        在上一篇博客中,介绍了iOS8新特性扩展功能之一的Today功能:http://my.oschina.net/u/2340880/blog/485533,这里我们再介绍一下分享的扩展功能。

      在iOS8之前,除了一些主流的社交平台,例如苹果支持内容分享外,其他开发者的应用若要加入分享的功能,将会十分的复杂。在iOS8的新特性中,apple为我们准备了这样的扩展功能。

首先创建工程,在我们的工程中新建一个Target:

142100_pZm5_2340880.png

之后,模板中会为我们创建一个controller类,这个controller用于控制我们的分享插件,里面内容:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@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;

弹出视图动画结束后执行的方法

@property (readonly, NS_NONATOMIC_IOSONLY) NSString *contentText;

分享的内容文字

@property (copy, NS_NONATOMIC_IOSONLY) NSString *placeholder;

默认显示的提示文字

- (void)didSelectCancel;

取消按钮执行的方法

我们在代码中如下添加后运行:

?
1
2
3
4
5
6
7
8
9
10
11
@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];
}

我们用系统的相册做测试,点击相片的分享按钮:

151324_NCmX_2340880.png

点击MORE,添加我们的扩展插件。

151443_xqFp_2340880.png

这时分享栏中多了一个我们的插件,点击效果如下:

151645_IsIy_2340880.png


还有一点我们需要了解,在这个扩展的plist文件中,有这样一个键:NSExtensionAttributes,里面有一个NSExtensionActivationRule的字典,其中可以设置一些键值,对分享插件的属性进行控制。

152047_Y6qT_2340880.png

这些键的写法在官方文档中的介绍如下:

152736_1KYh_2340880.png

这些键的意义,文档中介绍的很清楚,我们可以根据需要进行设置。

目录
相关文章
|
21天前
|
安全 数据安全/隐私保护 iOS开发
探索iOS 14中的隐私保护新特性
【5月更文挑战第31天】随着数字时代的发展,用户隐私保护日益成为公众关注的焦点。苹果公司在最新的iOS 14更新中引入了多项隐私保护功能,旨在为用户提供更加透明和可控的个人信息管理体验。本文将深入探讨这些新特性,分析它们如何增强用户的隐私安全,并讨论这些变化对开发者和用户的潜在影响。
|
29天前
|
前端开发 JavaScript 程序员
HBuilderX使用mac打包ios应用提示苹果根证书没有安装
HBuilderX使用mac打包ios应用提示苹果根证书没有安装
18 0
|
1月前
|
安全 Swift iOS开发
【Swift 开发专栏】Swift 与 UIKit:构建 iOS 应用界面
【4月更文挑战第30天】本文探讨了Swift和UIKit在构建iOS应用界面的关键技术和实践方法。Swift的简洁语法、类型安全和高效编程模型,加上与UIKit的紧密集成,使开发者能便捷地创建用户界面。UIKit提供视图、控制器、布局、动画和事件处理等功能,支持灵活的界面设计。实践中,遵循设计原则,合理组织视图层次,运用布局和动画,以及实现响应式设计,能提升界面质量和用户体验。文章通过登录、列表和详情界面的实际案例展示了Swift与UIKit的结合应用。
|
1月前
|
定位技术 开发工具 iOS开发
ios9定位服务的app进入后台三分钟收不到经纬度,应用被挂起问题及解决方案
ios9定位服务的app进入后台三分钟收不到经纬度,应用被挂起问题及解决方案
21 0
|
1月前
|
存储 Swift iOS开发
使用Swift开发一个简单的iOS应用的详细步骤。
使用Swift开发iOS应用的步骤包括:创建Xcode项目,设计界面(Storyboard或代码),定义数据模型,实现业务逻辑,连接界面和逻辑,处理数据存储(如Core Data),添加网络请求(必要时),调试与测试,根据测试结果优化改进,最后提交至App Store或其它平台发布。
59 0