Line在台灣無人不知無人不曉,當然也就可以拿來當做分享資訊的好平台,於是我就想知道如何使用Line分享。幸運的是它不必使用官方的SDK,即可透過open URL來運作!
若判斷沒有安裝Line APP的話,就會導出到APP Store的Line下載頁面喔!
Line分享的URI scheme格式:line://msg/<CONTENT TYPE>/<CONTENT KEY>。
/** Theme: Using Line to share IDE: Xcode 5 Language: Objective C Date: 103/04/23 Author: HappyMan Blog: https://cg2010studio.wordpress.com/ */ NSURL *appURL = [NSURL URLWithString:@"line://msg/text/IamHappyMan:)"]; if ([[UIApplication sharedApplication] canOpenURL: appURL]) { [[UIApplication sharedApplication] openURL: appURL]; } else { //如果使用者沒有安裝,連結到App Store NSURL *itunesURL = [NSURL URLWithString:@"itms-apps://itunes.apple.com/app/id443904275"]; [[UIApplication sharedApplication] openURL:itunesURL]; }分享Line要注意的是:必須將<CONTENT KEY>的內容轉成UTF-8,
例如內容:
我是黑皮棉 I am HappyMan
轉成UTF-8:
%E6%88%91%E6%98%AF%E9%BB%91%E7%9A%AE%E6%A3%89%20I%20am%20HappyMan
也就是字串應為:
line://msg/text/%E6%88%91%E6%98%AF%E9%BB%91%E7%9A%AE%E6%A3%89%20I%20am%20HappyMan
如此就能作用了!
iOS有個方法能夠將字串以UTF-8來編碼:
/* Adds all percent escapes necessary to convert the receiver into a legal URL string. Uses the given encoding to determine the correct percent escapes (returning nil if the given encoding cannot encode a particular character). See CFURLCreateStringByAddingPercentEscapes in CFURL.h for more complex transformations
*/
– (NSString *)stringByAddingPercentEscapesUsingEncoding:(NSStringEncoding)enc;
比較常用的平台URI scheme格式不太相同,可參考官方的教學。
- LINE 教學連結(官方)
line://msg/<CONTENT TYPE>/<CONTENT KEY> - Skype 教學連結(官方)
skype:users?call - WhatsApp 教學連結(官方)
whatsapp://send?text=Hello%2C%20World!
註:什麼是URI?
Web上可用的每種資源- HTML文檔、影像、影片、程序等-由一個通過通用資源辨識符(Universal Resource Identifier,簡稱URI)進行定位。
URI一般由三部分組成:
- 訪問資源的命名機制。
- 存放資源的主機名。
- 資源自身的名稱,由路徑表示。
注意:大多數人可能熟悉URL,而不是URI。然而URL是RUI命名機制的一個子集喔~
2016/09/06更新:
分享圖片可以這麼寫⋯⋯很神奇的是用剪貼簿耶!
UIPasteboard *pasteboard = [UIPasteboard generalPasteboard]; UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"happyman.jpg"]]; [pasteboard setData:UIImageJPEGRepresentation(imageView.image, 0.9) forPasteboardType:@"public.jpeg"]; NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"line://msg/image/%@", pasteboard.name]]; [[UIApplication sharedApplication] openURL: url];將pasteboard.name列印出來是:
com.apple.UIKit.pboard.general
參考:
Comments on: "[iOS] 使用Line分享" (3)
是 urlencode 不是 utf8
讚讚
喔!感謝你的提醒~
讚讚
[…] 此外像我還會想使用Line分享或使用Skype、What’sApp分享,此時就要找其它方法囉! […]
讚讚