Messages框架详细解析(一) —— 基本概览
版本记录
版本号 | 时间 |
---|---|
V1.0 | 2018.02.04 |
前言
Messages框架创建与Messages应用程序交互的应用程序扩展,允许用户发送文本,贴纸,媒体文件和交互消息。 更新交互式消息,调整对话参与者与之交互时每条消息的状态。接下来几篇我们就一起看一下这个框架。
Overview
下面看一下该框架的基本信息。
您可以使用Messages框架来创建两种类型的附加应用程序扩展名:Sticker packs
和iMessage
应用程序。 这两种扩展类型都可以作为独立的应用程序创建,也可以作为包含iOS应用程序的应用程序扩展。
有关创建和使用附加应用信息的更多信息,请参阅 App Extension Programming Guide。
下面看一下该框架的基本结构。
Sticker Packs - 贴纸包
贴纸包只是提供一组静态的贴纸,用户可以通过内联的方式发送图像作为消息或剥离,并附在消息气泡中。 贴纸包不需要任何代码。 通过将图像文件拖放到贴图资产目录中的贴纸包文件夹中来添加贴纸。 有效的图像文件必须符合以下规格:
- 图片必须是PNG,APNG,GIF或JPEG文件。
- 该文件必须小于500 KB。
- 为获得最佳效果,图像不应小于
100 x 100
点或大于206 x 206
点。
注意:始终提供@ 3x图像(
300 x 300
像素到618 x 618
像素)。 系统通过在运行时缩减@ 3x图像来生成@ 2x和@ 1x版本。
Messages支持三种贴图大小,这些大小显示在基于网格的浏览器中。 在Xcode属性检查器中,为您的贴纸包选择以下尺寸之一:
- 小。
100 x 100
点@ 3x(300 x 300像素)。 - 中。
136×136
点(3×408×408像素)。 - 大。
206 x 206
点@ 3x(618 x 618像素)。
为了获得最佳的质量和性能,请提供所选尺寸的贴纸图像。
要了解有关创建动画贴纸的更多信息,请参阅Creating Stickers with Motion。
要了解更多关于提交贴纸包到App Store的信息,请参阅 Preparing Sticker Submissions。
iMessage Apps
iMessage应用程序利用完整的框架与Messages应用程序进行交互。
注意:在iOS 10.0或之后链接的iMessage应用程序必须在其Info.plist文件中包含它需要访问的设备功能的使用说明键,否则将会崩溃。 具体而言,它必须包含NSCameraUsageDescription才能访问设备的摄像头,并且必须包含NSMicrophoneUsageDescription才能访问设备的麦克风。
使用iMessage应用程序来:
-
在Messages应用程序中提供一个自定义用户界面; 请参阅MSMessagesAppViewController。
-
创建一个自定义或动态的贴纸浏览器; 请参阅 MSStickerBrowserViewController。
-
将文本,贴纸或媒体文件插入到消息应用程序的输入字段中,请参阅MSConversation。
-
创建携带应用程序特定数据的交互式消息。看MSMessage。
-
更新交互式消息(例如,创建游戏或协作应用程序),请参阅MSSession。
要详细了解如何将iMessage应用程序提交到App Store,请参阅 Preparing Your iMessage App for Submission。
Topics
1. Classes
-
-
MSConversation
类表示消息应用程序中的对话。 使用会话对象访问有关当前所选消息或会话参与者的信息,或发送文本,贴纸,附件或消息对象。
-
-
- 使用
MSMessage
类创建交互式消息对象。 要创建可由对话参与者更新的消息,请使用 initWithSession:
方法通过会话实例化消息。 否则,使用init方法实例化消息。
- 使用
-
-
MSMessageLayout
类是一个抽象基类,用于定义会话脚本中MSMessage对象的外观。
-
-
- 在版面内提供一个自定义的交互式视图。
-
-
MSMessagesAppViewController
类充当消息扩展的主视图控制器。 使用这个类来管理你的扩展。 更多信息可参考 App Extension Programming Guide
-
-
-
MSMessageTemplateLayout描述了MSMessage对象如何显示在脚本中。 消息模板包括消息扩展的图标,图像,视频或音频文件,以及一些文本元素(
title, subtitle, caption, subcaption, trailing caption, 和 trailing subcaption
)。 这些元素的布局如Figure 1所示。
-
MSMessageTemplateLayout描述了MSMessage对象如何显示在脚本中。 消息模板包括消息扩展的图标,图像,视频或音频文件,以及一些文本元素(
-
- 使用
MSSession
类来创建和更新消息。
- 使用
-
- 在消息应用程序中使用的贴纸。 贴纸可以作为新消息发送或附加到消息中的现有气泡。
-
- 使用
MSStickerBrowserView
类显示一个动态生成的贴纸列表。 浏览器提供了拖放功能。 用户可以按住贴纸将其从浏览上剥离下来,然后将贴纸拖到消息中的任何气泡。 用户还可以点击贴纸将其添加到消息应用程序的输入字段。
- 使用
-
MSStickerBrowserViewController
- 使用
MSStickerBrowserViewController
呈现标准贴纸浏览器。 这个浏览器提供了拖放功能。 用户可以按住贴纸将其从浏览器上剥离下来,然后将标签拖到消息中任何气泡。 用户还可以点击贴纸将其添加到消息应用程序的输入字段。
- 使用
-
- 使用
MSStickerView
类来显示贴纸对象。 贴纸视图还提供了拖放功能。 用户可以按住一个贴纸将其从视图中剥离,然后将贴纸拖到transcript中的任何气泡。
- 使用
2. Protocols
-
MSStickerBrowserViewDataSource
- 实现
MSStickerBrowserViewDataSource
协议为浏览器动态提供贴图。
- 实现
-
MSMessagesAppTranscriptPresentation
- 一个协议,提供消息应用程序的脚本中显示实时消息的支持。
3. Reference
-
- 本文档描述了贴纸包和iMessage应用程序中使用的错误域和代码。
后记
本篇已结束,后面更精彩~~~