上篇教學: iOS內要如何分享資訊到到其他App 內
Bear簡單介紹了怎麼透過網址(URL)的方式分享訊息到其他App內
那, 要怎麼傳輸圖片過去呢? 別急, Bear在這篇將介紹怎麼做了!
同樣的OpenSource也放到github上了噢!
Bear簡單介紹了怎麼透過網址(URL)的方式分享訊息到其他App內
那, 要怎麼傳輸圖片過去呢? 別急, Bear在這篇將介紹怎麼做了!
同樣的OpenSource也放到github上了噢!
如果不想看內文想直接用的, 點選這邊前往github連結: https://github.com/shouian/SHLineKit
在介紹這次的Opensource時,
一樣我們先來看看這個Class (物件) 有哪些Method可用
在介紹這次的Opensource時,
一樣我們先來看看這個Class (物件) 有哪些Method可用
非常簡單, 只有3個Method需要用到
1. 判斷你的iDevice有沒有安裝LINE
2. 分享訊息到LINE上
3. 分享圖片到LINE上
範例上相當簡單, 我們目標是做出一個這樣的App界面
1. 判斷你的iDevice有沒有安裝LINE
2. 分享訊息到LINE上
3. 分享圖片到LINE上
範例上相當簡單, 我們目標是做出一個這樣的App界面
用一個預設的訊息"Hello this is a test to share with Line" 送出就行了
(如果不清楚Button怎麼設計的, 請到本文最末參考入門系列教學內容)
那我們先來看看, 這個Class內部的設計是怎麼進行的呢?
(如果不清楚Button怎麼設計的, 請到本文最末參考入門系列教學內容)
那我們先來看看, 這個Class內部的設計是怎麼進行的呢?
動作原理也跟這篇文章: iOS內如何呼叫其他App作動? 介紹一樣
如果大家想要替換成支援Skype / WhatsApp , 只要把line://msg/text/@的部分換成對應的URL就行囉
詳細URL替換文章參考: iOS內如何呼叫其他App作動?
但是比較麻煩的部分, 是在於我們要怎麼傳輸圖片過去呢?
這邊需要用到一個自從iOS 3.0版本開始就存在的古老Class: UIPasteboard
近代的iOS書本已經較少著墨在他身上了, 我們先來看看在我們的Class內部是怎麼使用的呢?
如果大家想要替換成支援Skype / WhatsApp , 只要把line://msg/text/@的部分換成對應的URL就行囉
詳細URL替換文章參考: iOS內如何呼叫其他App作動?
但是比較麻煩的部分, 是在於我們要怎麼傳輸圖片過去呢?
這邊需要用到一個自從iOS 3.0版本開始就存在的古老Class: UIPasteboard
近代的iOS書本已經較少著墨在他身上了, 我們先來看看在我們的Class內部是怎麼使用的呢?
我們內部建了一個category method : generatePasteLineBoard
詳細內容如下:
詳細內容如下:
這裡如果您是這一兩年內才加入iOS的開發者行列的朋友可能對他認識不深
這個古老的Class的簡介如下
這個古老的Class的簡介如下
照字面上的意思來看, 它可以讓你的App分享資料(data)給另一個App
只要利用對應的id就能呼叫出來, 我們可以把它想像成複製貼上,
它的原理就是: 會先把你的data資料給暫存在系統的某個部分
之後當你在另一款App內要叫起他的時候, 再用對應的key值把資料給叫出來
利用這樣的方式我們就能把圖片給傳輸給另一款App了!
那, 為什麼我們還開了一個category 來處理呢?
在iOS 7 以前, 當你要貼給對應的app時, 你只要有對應App的pasteboard的名稱就行
兩者名稱一樣是沒有關係的, 也就是說你把要貼過去的圖片給命名為jp.naver.*的任何名稱都行
不過在iOS7 後, Pasteboard不能再這樣做了, 如果你貼過去的UIPasteboard名稱跟對應的app有命名空間重複
(以LINE為例, 有jp.naver.*的關鍵字) 就不能貼過去了, 就必須改成用
[UIPasteboard generalPasteboard]來產生,
實際上傳圖的時候, 概念也跟傳輸文字訊息一樣, 只是最末端要接的是你的Pasteboard的名稱
[NSURL URLWithString:[NSString stringWithFormat:@"line://msg/image/%@", pasteboard.name]]
如果是其他的skype / WhatsApp也能一樣很簡單的實作出來噢! 有機會Bear再把它擴充成支援其他的IM App...
那, 我們來看看實際跳出的效果吧!
只要利用對應的id就能呼叫出來, 我們可以把它想像成複製貼上,
它的原理就是: 會先把你的data資料給暫存在系統的某個部分
之後當你在另一款App內要叫起他的時候, 再用對應的key值把資料給叫出來
利用這樣的方式我們就能把圖片給傳輸給另一款App了!
那, 為什麼我們還開了一個category 來處理呢?
在iOS 7 以前, 當你要貼給對應的app時, 你只要有對應App的pasteboard的名稱就行
兩者名稱一樣是沒有關係的, 也就是說你把要貼過去的圖片給命名為jp.naver.*的任何名稱都行
不過在iOS7 後, Pasteboard不能再這樣做了, 如果你貼過去的UIPasteboard名稱跟對應的app有命名空間重複
(以LINE為例, 有jp.naver.*的關鍵字) 就不能貼過去了, 就必須改成用
[UIPasteboard generalPasteboard]來產生,
實際上傳圖的時候, 概念也跟傳輸文字訊息一樣, 只是最末端要接的是你的Pasteboard的名稱
[NSURL URLWithString:[NSString stringWithFormat:@"line://msg/image/%@", pasteboard.name]]
如果是其他的skype / WhatsApp也能一樣很簡單的實作出來噢! 有機會Bear再把它擴充成支援其他的IM App...
那, 我們來看看實際跳出的效果吧!
按下上面的文字傳輸按鈕後呢, 就會自動導入到LINE上, 只要選擇你有興趣的人或群組就可以了
剩下LINE會負責幫你把文字貼上去!
剩下LINE會負責幫你把文字貼上去!
Bear一般喜歡傳送到聊天室, 我們看看聊天室內會有什麼效果吧
這樣是不是看出來, 文字被完美地貼上去了呢!?
那我們看看圖片能不能正常選擇呢?
那我們看看圖片能不能正常選擇呢?
這邊教學中用預設的元件會跳出選擇相片的功能, 就簡單挑張相片吧!!
選完後就直接分享了!
選完後就直接分享了!
這樣就能完成了, 是不是很輕鬆呢?
想要下載的朋友直接點選github連結就行囉(本篇文章前面有連結)
這篇文章的Opensource參考改編自此連結: https://github.com/dlackty/LineKit
[入門系列]
1. Xcode 5 - 你的第一支Hello World iOS程式
2. Xcode 5 - UIView 與 UILabel
3. Xcode 5 - 第一顆互動按鈕 UIButton
4. Xcode 5 - 協定與委派
5. Xcode 5 - 如何建立表格 UITableView?
[中級系列]
1. OpenSource - 可拖曳的UICollectionView (DraggableCollectionView)
2. 把Log記錄成文字檔 - Debug測試的好方法
3. 如何把訊息/圖片分享給其他App? (內含LINE, Skype, WhatsApp)
4. OpenSource - SHLineKit: 分享訊息/圖片到LINE上
[進階系列]
1. iOS 製作廣播電台
2. iOS 製作視訊串流
3. iOS 與Arduino製作藍芽聊天室
4. iOS 製作長曝光相機
5. iOS CoreblueTooth FrameWork
喜歡這篇文章嗎? 趕快加入Takobear粉絲團吧
想要下載的朋友直接點選github連結就行囉(本篇文章前面有連結)
這篇文章的Opensource參考改編自此連結: https://github.com/dlackty/LineKit
[入門系列]
1. Xcode 5 - 你的第一支Hello World iOS程式
2. Xcode 5 - UIView 與 UILabel
3. Xcode 5 - 第一顆互動按鈕 UIButton
4. Xcode 5 - 協定與委派
5. Xcode 5 - 如何建立表格 UITableView?
[中級系列]
1. OpenSource - 可拖曳的UICollectionView (DraggableCollectionView)
2. 把Log記錄成文字檔 - Debug測試的好方法
3. 如何把訊息/圖片分享給其他App? (內含LINE, Skype, WhatsApp)
4. OpenSource - SHLineKit: 分享訊息/圖片到LINE上
[進階系列]
1. iOS 製作廣播電台
2. iOS 製作視訊串流
3. iOS 與Arduino製作藍芽聊天室
4. iOS 製作長曝光相機
5. iOS CoreblueTooth FrameWork
喜歡這篇文章嗎? 趕快加入Takobear粉絲團吧