iMessage App

iOS10推出了以iMessage为载体的iMessage App,并为其专门提供了新的app store。丰富了用户的信息交流,支持相册,视频拍摄,表情包甚至小游戏,就像一个微型的app了。iMessage App不仅可以独立创建也可以依附于宿主App,作为插件的一种。对于开发者来说如果用户因为喜欢你的表情包下载了iMessage app,你的宿主app也会被下载到手机上。同时如果下载了你的App,而且App带有iMessage App在用户的iMessage里面会自动出现。这增加了你App的曝光率,可以吸引更多的用户。

iMessage App的展现方法有三种:

  • sticker 表情包
  • interactive messages 交互式信息,比如把某个点菜app的菜单发给对方,对方可以点完菜再发送给你
  • other content 支持其他类型的内容 图片,音视频,文本,链接等

Sticker

sticker可以以一种非常简单的方法创建,不需要写一行code就能出现这样的表情包

iMessage App_第1张图片
FullSizeRender.png

你只需要在Assets的文件夹里面提供图片就可以了。但是对于图片的大小官方时有要求的:

  • Small:100x100pt@3x
  • Medium:136x136pt@3x
  • Large:206x206pt@3x

这三种大小,它会根据图片的大小分配不同的grid。

当然我们也可以自定义UI,通过继承MSStickerBrowserViewController类,实现它的回调

-(NSInteger)numberOfStickersInStickerBrowserView:(MSStickerBrowserView *)stickerBrowserView
-(MSSticker *)stickerBrowserView:(MSStickerBrowserView *)stickerBrowserView stickerAtIndex:(NSInteger)index

分别是返回图片的个数和MSSticker对象,MSSticker实例里面存放了图片地址。

MSStickerBrowserViewController和UITableViewController很像但是有一点不同,数据源回调返回的是一个模型对象而不是一个view像cell这样的。其实是它帮我们做了一层封装最后使用的是MSStickerView。所以我们也可以用UICollectionViewControllerMSStickerView来创建

Interactive Messages

交互式消息都是在MSMessagesAppViewController这个类中完成的。交互式消息的界面有两种

  • Compact 不能访问键盘和相机,同时也不能使用横向滑动操作
iMessage App_第2张图片
436870E3C2F804509431E6A005EB4AF2.png
  • Expanded 不能访问用户输入框,但是可以访问键盘、相机,并且可以使用横向滑动操作
iMessage App_第3张图片
54520F062C82103AAF7813F642AA4756.png

消息的发送是由这个类MSConversation来完成,这里的发送是指把消息提交到输入框最好还需要用户点击发送
发送的方式有以下四种;

- (void)insertText:(NSString *)text completionHandler:(nullable void (^)(NSError * _Nullable))completionHandler;

直接发送文本

- (void)insertSticker:(MSSticker *)sticker completionHandler:(nullable void (^)(NSError * _Nullable))completionHandler;

发送上面提到的表情对象

- (void)insertMessage:(MSMessage *)message localizedChangeDescription:(nullable NSString *)changeDescription completionHandler:(nullable void (^)(NSError * _Nullable))completionHandler;

发送交互性消息,该消息是一个MSMessage对象,通过修改它的layout属性来修改消息内容,同时包括消息的位置
imageTitle,imageSubtitle,caption,subcaption,trailingCaption,trailingSubcaption,mediaFileURLMSMessageTemplateLayout对象提供这些属性来修改
`

- (void)insertAttachment:(NSURL *)URL withAlternateFilename:(nullable NSString *)filename completionHandler:(nullable void (^)(NSError * _Nullable))completionHandler;

发送文件包括音视频

你可能感兴趣的:(iMessage App)