開始一步一步學習Message App Extension

開始一步一步學習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)要求

創(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的對象賦值給MSMessagelayout的屬性
  • 不允許繼承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的界面大小

Demo的下載地址

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,400評論 4 61
  • WebSocket-Swift Starscream的使用 WebSocket 是 HTML5 一種新的協(xié)議。它實...
    香橙柚子閱讀 24,770評論 8 183
  • 晚安 為了明天再次遇見 早 只要遇到的 不管是尼羅河邊的法老 還是飛機上空姐幾寸幾的高跟 恰好遇見 便算早 遇見不...
    d07aea05a4fd閱讀 186評論 0 1
  • 小時候,真的是膽子大,雖說不上天不怕地不怕的,但這些對于一個長大了的女孩子來說,已經(jīng)很可怕了。 細想一下原因,可能...
    西瓜_Melon閱讀 238評論 0 0

友情鏈接更多精彩內(nèi)容