一、iMessage Apps
是什么?
专门为Messages写的APP
三种内容类型:
- stickers
- Interactive Messages
- other - photos, videos, text, links, etc.
二、Messages App Store
可以干什么?
- 消息内嵌message app --
引导下载
- iOS app类似功能 --
app内购
,Apple Pay
,相机
三、创建 iMessage Apps
建立在app extension 之上。
不同点:可以不需要container app
。
有container app : 两个图标 - Home 和 Messages App Store
没有container app :一个图标 - Messages App Store
四、Stickers
可以当正式的消息。还可以粘在其他消息上
本质 -- 图片(动态或静态)
支持格式:PNG, APNG, JPEG, GIF
动画格式:APNG, GIF
最大文件大小:500 KB
官方推荐格式:PNG
, APNG
(支持透明度,Xcode 优化)
五、创建 Sticker Apps
-
只使用assets -- Sticker Pack application 模板
- 用APNG创建动图
- 改变cell大小 -
small
,medium
,large
自定义sticker -- 使用Messages application 模板
好处:
- 自定义UI
- 动态创建sticker
- 使用相机
- app内购
层级关系:
自定义cell:
呈现样式:
六、Interactive Messages
- Messages API Overview
- MSMessagesAppViewController
- MSConversation
- MSMessage - MSSession, MSMessageTemplateLayout
-
Extension Lifecycle
-
Compose a Message
-
Send a Message
let conversation = self.activeConversation
conversation?.insert(message) { error in
// TODO: Check for an error
})conversation?.insertText("Example text”) { error in // TODO: Check for an error } conversation?.insertAttachment(resourceURL, withAlternateFilename: nil) { error in // TODO: Check for an error } conversation?.insert(sticker) { error in // TODO: Check for an error }
-
Presentation Style
Replying to a Message
-
Extension is inactive
-
Extension is active
-
Session Messages
let conversation = self.activeConversation let session = conversation?.selectedMessage?.session let message = MSMessage(session: session) conversation?.insert(message) { error in // TODO: Check for an error }