iMessage extension 使用總結

iMessage extension 是ios10才能支持的新特性,發布于2016年2月的WWDC蘋果發布會官方資料,有兩種方式創建,第一可以單獨寫一個iMessage application 發布到iMessage App Store(在iMessage app看到的那個App Store),但是這樣只能在iMessage App Store上看到,在main App Store(平時使用的app store) 上看不到,第二種可以在原有的項目中加入iMessage extension,這樣在兩處的app store 都可以看到,無論從哪個app store安裝,安裝其中一個,另一個就會附帶被安裝,因此在app中加入iMessage extension對應用的推廣有一定的幫助,單獨發布imessage extension并沒有優勢(除非是做表情)。下面先寫一個demo,然后說一下遇到的坑。

我用的是xcode8.2.1,左上角file-->new-->target-->iMessage extension,創建完成后,在MessagesViewController中自定義一些界面,具體怎么做很簡單,貼一篇別人寫的文章iOS10中Messages獨立應用與擴展插件詳析,講的很詳細了,現在我主要講在主app中加入imessage extension和從imessage 跳到主app注意事項。

1.使用URLSchemes的方式跳轉到主app。在主app中定義一個URLSchemes:選中主app的TARGET-->info-->URL Type,添加一個URL Type,identify隨便保證唯一就好,URL Schemes也保證唯一,比如extensionURLSchemes。

2.在MessagesViewController類中,重寫幾個方法:

? -(void)didSelectMessage:(MSMessage *)message conversation:(MSConversation *)conversation{

[self.extensionContext openURL:[NSURL URLWithString:[NSString stringWithFormat:@"extensionURLSchemes://"]] completionHandler:nil];

}

其中extensionURLSchemes后的冒號和斜杠一定要有,當點擊imesage時就能跳到主app了,但是第二次點擊同一條imessage時就跳不了,原因是第一次跳過去后,imessage app就已經退出了(很容易就退出了,界面消失就退出),因此第二次點擊imessage時不會調用-(void)didSelectMessage:(MSMessage *)message conversation:(MSConversation *)conversation方法,而是調用-(void)willBecomeActiveWithConversation:(MSConversation *)conversation方法,因此也要在這個方法中做跳轉邏輯

(void)willBecomeActiveWithConversation:(MSConversation *)conversation{

if (conversation.selectedMessage) {

[self.extensionContext openURL:[NSURL URLWithString:[NSString stringWithFormat:@"extensionURLSchemes://"]] completionHandler:nil];

}

}

3.IMessage extension 和主app通信一般使用NSUserDefaults的方式:capabilityes-->App Group,添加一個group,名字唯一即可,并且鉤上,在IMessage extension中也加入到同一個group中,現在兩個target在同一個group中可以通信了,比如group的名字是extensionGroup,比如可以這樣存取數據

NSUserDefaults *group = [[NSUserDefaults alloc]initWithSuiteName:@"extensionGroup"];

[group setObject:@"我的extension" forKey:@"groupKey"];//存值

[group synchronize];//一定要記得

NSString *value = [group objectForKey:@"groupKey"];//取值

4.IMessage extension 可以和主app共享代碼:選擇.m文件,在右邊欄target membership中勾選上,所有關聯到的文件都必須選上;還可以通過 frameWork共享代碼:file-->new-->target-->cocoa touch framework ,然后選擇新建的framework,在Build Phase-->compile sources中加入需要共享的代碼,然后在別的target的Build Phase-->compile sources中刪掉加入framework的.m文件,在Build Phase-->Link Binary With Binaries 中加入framework,就可以共享代碼了,但是cocoa touch framework是iOS8才有的,如果主app支持版本低于iOS8,最好不要用cocoa touch framework做代共享,還有pod進來的第三方框架,直接

target '我是extensiontarget' do

pod? 'SDWebImageWebP',? '8.0.12'

.........

end

這樣就可以了,上面'我是extensiontarget'不能是cocoa touch framework

大概就是這么多,有什么問題可以加我QQ交流:1529075810

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,247評論 6 543
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,520評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,362評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,805評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,541評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,896評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,887評論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,062評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,608評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,356評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,555評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,077評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,769評論 3 349
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,175評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,489評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,289評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,516評論 2 379

推薦閱讀更多精彩內容

  • 通過iOS 8app extensions,我們可以選擇多種方式去分享我們app的功能。Document Prov...
    _淺墨_閱讀 7,229評論 4 12
  • Swift版本點擊這里歡迎加入QQ群交流: 594119878最新更新日期:18-09-17 About A cu...
    ylgwhyh閱讀 25,504評論 7 249
  • 發現 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,173評論 4 61
  • 為什么這么多做眾籌的都銷聲匿跡了,只有一個楊勇在說眾籌?格局。這個詞有點太文,換句話說就是干掉利益,其實干掉的是眼...
    在明明德書院閱讀 294評論 0 0
  • 人們總說,完事開頭難。熬過了冬天就可以看得到春天的影子。不例外,人們都喜歡把開頭敘寫的多么宏偉壯觀,但在時間的消磨...
    關山難越_閱讀 489評論 0 0