Just My Life & My Work

[iOS] 使用Line分享

Line在台灣無人不知無人不曉,當然也就可以拿來當做分享資訊的好平台,於是我就想知道如何使用Line分享。幸運的是它不必使用官方的SDK,即可透過open URL來運作!

Share to Line App Store2

這是iPad在APP Store的Line下載頁面。

若判斷沒有安裝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];
    }
Share to Line App Store

這是iPhone在APP Store的Line下載頁面。

分享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;

Share to Line App

來自我介紹一下吧:)~

比較常用的平台URI scheme格式不太相同,可參考官方的教學。

註:什麼是URI?

Web上可用的每種資源- HTML文檔、影像、影片、程序等-由一個通過通用資源辨識符(Universal Resource Identifier,簡稱URI)進行定位。

URI一般由三部分組成:

  1. 訪問資源的命名機制。
  2. 存放資源的主機名。
  3. 資源自身的名稱,由路徑表示。

注意:大多數人可能熟悉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)

  1. 是 urlencode 不是 utf8

  2. […] 此外像我還會想使用Line分享或使用Skype、What’sApp分享,此時就要找其它方法囉! […]

隨意留個言吧:)~

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

標籤雲

%d 位部落客按了讚: