開始一步一步學習Message App Extension
可以支持發(fā)送的類型
- 文本
- 貼紙(表情包)
- 視頻文件
- 交互式的消息
擴展支持兩種類型
- 貼紙(表情包)
- iMessage的app
這兩種類型可以通過獨立的應(yīng)用和擴展創(chuàng)建。
1. 貼紙(表情包)
滿足的條件類型
- 必須是PNG APNG GIF JPEG的一種
- 文件大小小于500KB
- 圖片的尺寸應(yīng)該大于100px x 100px 小于206px x 206px
支持允許使用@3x的圖片 300px x 300px 到 618px x 618px 系統(tǒng)會自動生成@2x,@1x的圖片
消息支持三種貼紙大小
- 小圖 100px x 100px @3x(300px x 300px)
- 中等 136px x 136px @3x(408px x 408px)
- 大圖 206px x 206px @3x(618px x 618px)
創(chuàng)建貼紙類型
系統(tǒng)要求
- mac10.10.4之后
- Motion5.2.3之后 -> 下載地址
創(chuàng)建Motion的工程
下載模板工程
啟動Motion軟件
創(chuàng)建新的Motion工程 File->New
選擇Motion Project
-
在右邊可選項
- Preset->Custom
- Field Order -> None
- Aspect Ratio -> Square
- Duration->2 seconds
- 輸入合適的圖片尺寸
點擊右下角打開
Size Frame Dimensions 小圖 300x300 中圖 408x408 大圖 618x618
添加圖片
- 單擊左邊File選項
- 選擇剪輯 圖形 圖像 序列選擇導入
- 導入之后 你可以選擇內(nèi)置的動畫效果
添加行為
- 選擇左上角Library的選項
- 選擇Behaviors category選擇可用的分類
- 點擊基本的動作選擇放大和縮小
- 拖動行為到對象層應(yīng)用
添加文本
- 在ToolBar 選擇Text工具或者按下T快捷鍵
- 選擇Canvas
- 輸入你的文本按下Escape
- 點擊Text的Inspector標簽 選擇字體類型 大小 對其方式 其他
導出貼紙
- 選擇Share->Export Image Sequence
- 點擊Export選擇PNG圖片
- 點擊Duration菜單選擇整個工程
- 點擊下一步 會保存在你的驅(qū)動器。
iMessage Apps
- 在用戶插入一個Message App可以參考
MSMessageAppViewController - 創(chuàng)建一個自定義或者動態(tài)的貼紙瀏覽框可以參考
MSStickerBrowserViewController - 插入文本 貼紙 視頻文件到Message App 輸入框查看
MSConversation - 創(chuàng)建帶有特定的應(yīng)用數(shù)據(jù)交互的消息 查看
MSMessage - 更新交互式信息(例如,創(chuàng)建游戲或應(yīng)用程序協(xié)作 查看
MSSession
MSMessageAppViewController
@property(nonatomic, strong, readonly) MSConversation *activeConversation;
獲取當前聊天的對象
- 發(fā)送簡單的文本
[self.activeConversation insertText:@"Text Message" completionHandler:nil];
此方法異步執(zhí)行
- 發(fā)送消息對象
必須設(shè)置URL屬性和Layout屬性
@property (nonatomic, copy, nullable) NSURL *URL;
使用NSURLComponents創(chuàng)建生成URL屬性
@property(nonatomic, copy) MSMessageLayout *layout;
使用MSMessageTemplateLayout創(chuàng)建生成layout屬性
MSMessageTemplateLayout
下面是這個layout的界面模板
怎么使用模板?
- 實例化一個
MSMessageTemplatelayout的對象 - 設(shè)置屬性 根據(jù)布局的需要設(shè)置不同的類型
- 把創(chuàng)建的
MSMessageTemplateLayout的對象賦值給MSMessage的layout的屬性 - 不允許繼承
MSMessageTemplateLayout類
1 發(fā)送簡單的圖片
MSMessageTemplateLayout *layout = [[MSMessageTemplateLayout alloc]init];
UIImage *image = [UIImage imageNamed:@"gb_simple_icon"];
layout.image = image;
2 發(fā)送文本和圖片
在上面的代碼上面添加
layout.imageTitle = @"Image Title";
3 發(fā)送文本圖片 圖片副標題
layout.imageSubtitle = @"Image SubTitle"
這樣我們根據(jù)MSMessageTemplateLayout類里面的屬性控制模板的內(nèi)容現(xiàn)在,大家可以自行設(shè)置查看樣式
發(fā)送圖片
圖片一定要滿足下面
- 圖片在工程里面
- 圖片類型為 GIF PNG JPG JPEG任一
- 圖片大小不大于500KB
- 圖片尺寸在300px x 300px - 618px x 618px
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"eat" ofType:@"gif"]];
MSSticker *sticker = [[MSSticker alloc] initWithContentsOfFileURL:url localizedDescription:@"Localized" error:nil];
[self.activeConversation insertSticker:sticker completionHandler:nil];
發(fā)送視頻
視頻也要保存在工程里面
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"video" ofType:@"mov"]];
[self.activeConversation insertAttachment:url withAlternateFilename:nil completionHandler:nil];
設(shè)置樣式
MSMessagesAppPresentationStyleCompact
設(shè)置界面大小和鍵盤大小一致
MSMessagesAppPresentationStyleExpanded
設(shè)置界面的大小和iMessage的界面大小