Home

Universal Link iOS

Word count: 501 / Reading time: 3 min
2020/05/23 Share

Universal Linking cho phép khởi chạy ứng dụng từ một đường link trong email hoặc tin nhắn văn bản, nếu ưng dụng đã được cài đặt trên thiết bị người dùng.

  • Bạn có thể truyền một số tham số trong url của link để có thể khởi chạy ứng dụng tại đúng một màn hình cụ thể với những dữ liệu phù hợp.
  • Thiết lập khá dễ dàng với các máy chủ sử dụng HTTPS, và iphone chạy từ iOS 9 trở lên.
  • Nếu muốn hộ trở HTTP link hoặc cho các thiết bị dưới iOS, thì universal link không dành cho ứng dụng của bạn :D

Để hỗ trợ universal link, đầu tiên là tạo một tệp liên kết có tên chính xác là apple-app-site-association. Vai trò của nó là chỉ ra ứng dụng iOS nào được liên kết với tên web domain của bạn.

Như docs của apple có mô tả, file trên phải được đặt ở root folder của domain, sử dụng HTTPS và không có bất kỳ sự điều hướng nào.

Dưới đây là một ví dụ về file apple-app-site-association trông như thế nào:

1
2
3
4
5
6
7
8
9
10
11
{
"applinks": {
"apps": [],
"details": [
{
"appID": "[TeamID].[Bundle id]",
"paths": [ "*" ]
}
]
}
}

Bây giờ chúng ta bắt đầu setup Universal link ở phía iOS. Đầu tiên chúng ta cần enable associated domains tại https://developer.apple.com đối với appID của bạn.

Sau đó trong Xcode, chúng ta cần chỉ ra cho ứng dụng iOS của mình các domain liên quan. Trong Targets project , click tạo thêm 1 Capability Associated Domain.

Add domain liên kết với ứng dụng của bạn kèm applinks ở trước:

Hầu như đã hoàn tất, tại AppDelegate ta gọi hàm sau bắt được các thông tin khi app được launch từ universal link:

1
2
3
4
5
6
7
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool {

if userActivity.activityType == NSUserActivityTypeBrowsingWeb {
// navigate to userActivity.webpageURL
}
return true
}

Bây giờ bạn có thể launch ứng dụng của mình đến một màn hình cụ thể khi user click vào link với domain bạn đã cài đặt tương ứng ở trên :D

CATALOG
  1. 1. Universal link support
  2. 2. Universal link in iOS