Skip to content

LINE ​

LINE is a messaging app from LY Corporation. Protocol Launcher allows you to generate official LINE URL scheme links for opening LINE app screens, LIFF apps, and LINE MINI Apps.

Usage ​

There are two ways to use this library:

  • On-Demand import from subpaths enables tree-shaking and keeps bundles small.
  • Full Import from the root package is convenient but includes all app modules.

Pick On-Demand for production builds; Full Import is fine for quick scripts or demos.

Select Installation Method

On-Demand
Recommended. Optimized for production.
Full Import
Convenient. Good for quick scripts.

LINE's current official URL scheme documentation supports URLs beginning with https://line.me/R/, https://liff.line.me/, and https://miniapp.line.me/. It is supported in LINE for iOS and LINE for Android, and isn't supported in LINE for PC (macOS, Windows). The deprecated line:// and LIFF v1 URL forms are intentionally not exposed.

Camera and Location ​

Open the camera, camera roll, or location screen. LINE documents camera and camera roll links as chat-only, and the location link as only for one-on-one chats with a LINE Official Account.

On-Demand
ts
import { openCamera, openCameraRollSingle, openCameraRollMulti, openLocation } from 'protocol-launcher/line'

const cameraUrl = openCamera()
const singleImageUrl = openCameraRollSingle()
const multiImageUrl = openCameraRollMulti()
const locationUrl = openLocation()

Official Accounts ​

Open or share a LINE Official Account profile, LINE VOOM, business profile, LINE VOOM post, or chat screen. Official Account IDs in path segments are percent-encoded; LINE VOOM and business profile URLs use the ID without the at-sign (@) prefix. LINE notes that the percent-encoded recommendOA form doesn't work on LINE versions earlier than 13.8.0 for Android.

On-Demand
ts
import { openOfficialAccountProfile, recommendOfficialAccount, openOfficialAccountVoom, openOfficialAccountBusinessProfile, openOfficialAccountVoomPost, openOfficialAccountChat } from 'protocol-launcher/line'

const profileUrl = openOfficialAccountProfile({
  lineId: '@linedevelopers',
})

const recommendUrl = recommendOfficialAccount({
  lineId: '@linedevelopers',
})

const voomUrl = openOfficialAccountVoom({
  lineId: 'linedevelopers',
})

const businessProfileUrl = openOfficialAccountBusinessProfile({
  lineId: 'linedevelopers',
})

const voomPostUrl = openOfficialAccountVoomPost({
  lineId: 'linedevelopers',
  postId: '1234567890',
})

const chatUrl = openOfficialAccountChat({
  lineId: '@linedevelopers',
  text: 'Hi there!',
})

Share and Profile ​

Open LINE's Share with screen with text, the user's My profile screen, or the user's LINE ID screen.

On-Demand
ts
import { shareText, openMyProfile, openProfileSetId } from 'protocol-launcher/line'

const shareUrl = shareText({
  text: 'Hi there!',
})

const myProfileUrl = openMyProfile()
const lineIdUrl = openProfileSetId()

Common Screens ​

Open LINE's Chats, Shopping, Wallet, Add friends, LINE Official Accounts, and LINE VOOM Following screens.

On-Demand
ts
import { openChats, openShopping, openWallet, openAddFriends, openOfficialAccounts, openVoomFollowing } from 'protocol-launcher/line'

const chatsUrl = openChats()
const shoppingUrl = openShopping()
const walletUrl = openWallet()
const addFriendsUrl = openAddFriends()
const officialAccountsUrl = openOfficialAccounts()
const voomFollowingUrl = openVoomFollowing()

Settings ​

Open LINE settings screens. LINE documents different theme settings URLs for iOS and Android, so the helpers expose separate functions for each platform.

On-Demand
ts
import { openSettings, openAccountSettings, openAuthorizedApps, openConnectedDevices, openPrivacySettings, openStickerSettings, openMyStickers, openThemeSettingsIos, openThemeSettingsAndroid, openMyThemes, openNotificationAuthorizedApps, openChatSettings, openDisplaySuggestions, openCallSettings, openFriendsSettings, openVoomSettings } from 'protocol-launcher/line'

const settingsUrl = openSettings()
const accountUrl = openAccountSettings()
const authorizedAppsUrl = openAuthorizedApps()
const connectedDevicesUrl = openConnectedDevices()
const privacyUrl = openPrivacySettings()
const stickerSettingsUrl = openStickerSettings()
const myStickersUrl = openMyStickers()
const themeSettingsIosUrl = openThemeSettingsIos()
const themeSettingsAndroidUrl = openThemeSettingsAndroid()
const myThemesUrl = openMyThemes()
const notificationsUrl = openNotificationAuthorizedApps()
const chatSettingsUrl = openChatSettings()
const suggestionsUrl = openDisplaySuggestions()
const callSettingsUrl = openCallSettings()
const friendsSettingsUrl = openFriendsSettings()
const voomSettingsUrl = openVoomSettings()

Sticker and Theme Shops ​

Open Sticker Shop pages, sticker ranking tabs, sticker authors, and Theme Shop product pages.

On-Demand
ts
import { openSticker, openStickerCategoryRanking, openStickerAuthor, openStickerShop, openStickerShopRank, openStickerShopNew, openStickerShopFree, openStickerShopCategories, openTheme } from 'protocol-launcher/line'

const stickerUrl = openSticker({
  packageId: 11537,
})

const categoryRankingUrl = openStickerCategoryRanking({
  categoryId: 21,
})

const authorUrl = openStickerAuthor({
  authorId: 12345,
})

const stickerShopUrl = openStickerShop()
const rankUrl = openStickerShopRank()
const newUrl = openStickerShopNew()
const freeUrl = openStickerShopFree()
const categoriesUrl = openStickerShopCategories()

const themeUrl = openTheme({
  productId: '0bac8fed-4c75-40c5-9982-e9ecc3b9d191',
})

LIFF and MINI Apps ​

Open a LIFF app or create a LINE MINI App permanent link. Both helpers support additional path, query, and hash information documented by LINE.

On-Demand
ts
import { openLiff, openMiniApp } from 'protocol-launcher/line'

const liffUrl = openLiff({
  liffId: '1234567890-AbcdEfgh',
  path: '/path_A/path_B/',
  query: {
    key1: 'value1',
    key2: 'value2',
  },
  hash: 'URL-fragment',
})

const miniAppUrl = openMiniApp({
  liffId: '123456-abcedfg',
  path: '/shop',
  query: {
    search: 'shoes',
  },
  hash: 'item10',
})

External Browser ​

Add LINE's official query parameters for opening a target URL in an external browser or, on Android, a Chrome custom tab. LINE documents that these parameters are not supported on LIFF apps, so the helpers reject LIFF app URLs such as https://liff.line.me/... and LINE MINI App URLs such as https://miniapp.line.me/....

On-Demand
ts
import { openExternalBrowser, openAndroidChromeCustomTab } from 'protocol-launcher/line'

const externalBrowserUrl = openExternalBrowser({
  url: 'https://example.com/',
})

const chromeCustomTabUrl = openAndroidChromeCustomTab({
  url: 'https://example.com/path?foo=bar#section',
})

Official Documentation ​