美文网首页
iMessage App

iMessage App

作者: 董二千 | 来源:发表于2016-10-11 11:29 被阅读131次

    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就能出现这样的表情包

    FullSizeRender.pngFullSizeRender.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 不能访问键盘和相机,同时也不能使用横向滑动操作
    436870E3C2F804509431E6A005EB4AF2.png436870E3C2F804509431E6A005EB4AF2.png
    • Expanded 不能访问用户输入框,但是可以访问键盘、相机,并且可以使用横向滑动操作
    54520F062C82103AAF7813F642AA4756.png54520F062C82103AAF7813F642AA4756.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

          本文链接:https://www.haomeiwen.com/subject/psxbyttx.html