簡單說:
「Universal Links」是 iOS 的深層連結標準,
「App Links」是 Android 的對應標準。
| 項目 | Universal Links(iOS) | App Links(Android) |
|---|---|---|
| 所屬平台 | Apple iOS / iPadOS | Google Android |
| 啟動機制 | 使用 Apple 的「Associated Domains」設定(apple-app-site-association) |
使用 Android 的「Digital Asset Links」(assetlinks.json) |
| 網域綁定 | App 必須宣告擁有該網站網域(domain)權限 | 同樣需驗證該網域與 App 契合(site ↔ app 簽章) |
| 開啟方式 | Safari / WebView 偵測後 → 自動跳轉至 App(若已安裝) | Chrome / WebView 偵測後 → 自動跳轉至 App(若已安裝) |
| 備援行為 | 未安裝 App 時 → 開啟網頁 | 未安裝 App 時 → 開啟網頁 |
| 典型用途 | iOS 上的深層連結,例如開啟 LINE 貼文、YouTube 影片、銀行 App | Android 上的深層連結,例如開啟 Shopee、Instagram 等 |
為何 LINE 現在才支援 Universal / App Links?
這其實是 技術與安全政策的折衷:
-
以前(< v14.20):
LIFF 的 openWindow 幾乎都會「直接跳 App」,只要 URL 支援深層連結。
但這造成安全風險(惡意網頁可誘導開銀行 / 支付 App)。 -
中期版本(v14.20~15.19):
LINE 封鎖了自動跳 App 的行為,統一在內嵌瀏覽器中開啟。 -
現在(v15.20 起,2025/12 推出):
改為由開發者明確指定:-
params.external = false→ 只在 LINE 開啟 -
params.external = true→ 允許跳外部或 App(依裝置支援 Universal/App Links)
-
這是為了「兼顧安全與開放」,也符合 iOS/Android 的 App Store 政策。
---
Telegram 不用 Universal/App Links 機制,而是自己的
tg:// URL。在 WebView 內,它比較自由,不會像 LINE 一樣嚴格限制開新視窗。| 項目 | iOS | Android | LINE LIFF 特性 | Telegram |
|---|---|---|---|---|
| 深層連結標準 | Universal Links | App Links | 現在才正式支援(v15.20) | 自家 tg:// |
| target="_blank" 行為 | 可開 Safari | 可開 Chrome | ❌ 被禁用,需用 liff.openWindow() |
✅ 通常可用 |
| 主要考量 | 安全與控制 | 開發者彈性 | 安全優先 | 自由開放 |