Trước iOS 9, việc điều hướng giữa các trang web di động và ứng dụng iPhone gốc là một trải nghiệm không thể đoán trước và vụng về. Các nhà phát triển dựa vào các giao thức URI tùy chỉnh như instagram:// hoặc mybank://. Những sơ đồ này thường kích hoạt các cảnh báo hệ thống gây khó chịu hỏi "Mở trong ứng dụng?", hoàn toàn không hoạt động nếu ứng dụng bị thiếu, và gặp phải các lỗ hổng bảo mật nghiêm trọng. Để giải quyết những sai sót cơ bản này, Apple đã giới thiệu Universal Links. Nhưng Universal Link là gì, và tại sao nó lại thay đổi kiến trúc phần mềm di động?

Về cơ bản, Universal Link là một URL web HTTPS tiêu chuẩn và bảo mật, dẫn trực tiếp đến các view controller cụ thể bên trong một ứng dụng iOS đã được cài đặt. Nếu ứng dụng đã được cài, iOS sẽ khởi chạy ngay lập tức mà không mở Safari. Nếu ứng dụng không có, hệ điều hành sẽ tải trang web phản hồi trong Safari một cách mượt mà mà không hiển thị các hộp thoại lỗi. Trong phân tích kỹ thuật này, chúng tôi xem xét cách hoạt động bên trong của Apple Universal Links, khám phá tệp cấu hình AASA, và giải thích lý do tại sao định tuyến trên thiết bị di động hiện đại phụ thuộc vào giao thức này.

Hiểu về Universal Links là điều quan trọng đối với bất kỳ kỹ sư iOS hoặc nhà tiếp thị kỹ thuật số nào muốn cung cấp trải nghiệm khách hàng liền mạch từ các chiến dịch email, nền tảng mạng xã hội và kết quả công cụ tìm kiếm.

Sơ đồ hiển thị cách Liên kết Đa năng của Apple định tuyến các yêu cầu web iOS trực tiếp vào ứng dụng di động gốc
Liên kết toàn cầu của Apple xác minh các liên kết miền để khởi chạy trực tiếp các ứng dụng đã cài đặt trong khi cung cấp giải pháp thay thế liền mạch cho Safari.

Để hiểu được mục đích của Liên kết Toàn cầu (Universal Links), cần phải xem xét những hạn chế của các sơ đồ URL tùy chỉnh cũ. Các sơ đồ tùy chỉnh không có một đăng ký trung tâm. Bất kỳ nhà phát triển nào cũng có thể tạo một ứng dụng tuyên bố sử dụng sơ đồ paypal://, chặn các tham số tài chính nhạy cảm dự định gửi đến một dịch vụ hợp pháp, như đã nêu trong hướng dẫn của chúng tôi về các sơ đồ URL di động. Hơn nữa, nếu một người dùng không có ứng dụng nhấp vào liên kết sơ đồ tùy chỉnh trong Safari, iOS sẽ hiển thị một lỗi hệ thống nghiêm trọng: "Safari không thể mở trang này vì địa chỉ không hợp lệ."

Apple đã thiết kế Liên kết Chung để thiết lập ba tiêu chuẩn vận hành quan trọng:

  • Tính độc đáo và bảo mật: Bởi vì Universal Links sử dụng các miền web tiêu chuẩn (ví dụ, https://dslink.me/path), không nhà phát triển nào khác có thể sở hữu liên kết của bạn trừ khi họ kiểm soát các bản ghi DNS và chứng chỉ SSL đã được xác thực của bạn.
  • Dự phòng không ma sát: Nếu người dùng iPhone không cài đặt ứng dụng của bạn, cùng một URL đó sẽ tự động mở trang web di động của bạn trên Safari. Không có liên kết hỏng và không có thông báo lỗi.
  • Nhận dạng đơn: Các nhà tiếp thị và nhà phát triển chỉ cần chia sẻ một URL duy nhất phục vụ cả khách truy cập web trên máy tính để bàn và người dùng ứng dụng gốc trên thiết bị di động.

Thiết kế này cũng giải quyết các vấn đề khi một liên kết mở trong Safari thay vì ứng dụng do việc chuyển giao giao thức bị hỏng.

Kiến trúc của Apple App Site Association (AASA)

Nền tảng hoạt động của Liên kết Toàn cầu là một quy trình bắt tay bảo mật giữa hệ điều hành của Apple và máy chủ web của bạn. Quy trình bắt tay này được điều phối bởi tệp Apple App Site Association (AASA), một tài liệu JSON được lưu trữ tại:

https://yourdomain.com/.well-known/apple-app-site-association

Tệp này xác định những ID ứng dụng nào được phép xử lý các đường dẫn URL cụ thể trên miền của bạn. Dưới đây là một ví dụ về định dạng JSON AASA hiện đại:

{
  "applinks": {
    "apps": [],
    "details": [
      {
        "appID": "TEAMID1234.com.example.myapp",
        "paths": ["/video/*", "/product/*", "/user/*"],
        "components": [
          {
            "/": "/video/*",
            "comment": "Matches all video detail pages"
          }
        ]
      }
    ]
  }
}

Các quy tắc kỹ thuật chính về lưu trữ áp dụng cho tệp AASA:

  • Nó phải được phục vụ qua HTTPS với một chứng chỉ SSL đáng tin cậy.
  • Nó phải trả về một Content-Type là application/json.
  • Nó phải trả về mã trạng thái HTTP 200 OK mà không có bất kỳ chuyển hướng HTTP sang HTTPS nào.
  • Apple lưu trữ tệp này trên Mạng Phân phối Nội dung (CDN) của mình; các thay đổi được thực hiện trên máy chủ của bạn có thể mất một thời gian để lan truyền đến tất cả các thiết bị iOS.

Tạo một liên kết sâu thông minh trong vài giây

Ngừng để mất người dùng di động vào các màn hình đăng nhập trong ứng dụng vụng về. Sử dụng DSLink để tạo các liên kết sâu mở ứng dụng gọn gàng với phân tích theo thời gian thực.

Open Universal Links vs schemes guide

Hiểu sự khác biệt về kiến trúc giữa Universal Links và các схем tùy chỉnh giúp các nhà phát triển thiết kế hệ thống định tuyến đa nền tảng bền vững, như được khám phá trong so sánh của chúng tôi về Universal Links so với URL schemes:

Tính năng Liên kết Apple Universal Các giao thức URI tùy chỉnh
Định dạng URL HTTPS tiêu chuẩn (https://brand.com) Giao thức độc quyền (brand://)
Bảo mật & Quyền sở hữu Đã xác minh qua DNS và JSON AASA Chưa xác minh; dễ bị chiếm dụng kế hoạch
Xử lý khi không tìm thấy Tải trang web trên Safari một cách mượt mà Hiển thị lỗi "Safari không thể mở trang"
Hành vi nhắc nhở Mở ứng dụng ngay lập tức mà không có thông báo Thường kích hoạt các hộp thoại hệ thống "Mở trong Ứng dụng?"
Hỗ trợ trình duyệt trong ứng dụng Thường bị hạn chế bởi các quan điểm xã hội Có thể được kích hoạt thông qua chuyển hướng JavaScript

Trong khi Liên kết Toàn cầu (Universal Links) vượt trội về bảo mật và trải nghiệm người dùng, các sơ đồ tùy chỉnh vẫn thường được duy trì như các phương án dự phòng khi đối phó với trình duyệt trong ứng dụng của mạng xã hội khó tính, được trình bày chi tiết trong hướng dẫn của chúng tôi về điều hướng trình duyệt trong ứng dụng.

Khi người dùng iPhone chạm vào một liên kết trong Apple Mail, Messages hoặc một ứng dụng bên thứ ba, iOS sẽ thực hiện một quy trình quyết định chính xác:

  1. Tra cứu cơ sở dữ liệu cục bộ: iOS kiểm tra cơ sở dữ liệu có chỉ mục cục bộ của các miền đã được xác minh được lưu trữ trong quá trình cài đặt ứng dụng.
  2. Đánh giá đường dẫn: Nếu tên miền khớp, iOS sẽ đánh giá xem đường dẫn URL có khớp với các mẫu được định nghĩa trong tài liệu AASA hay không.
  3. Kiểm tra tùy chọn của người dùng: iOS kiểm tra xem người dùng có từng bật/tắt tùy chọn Safari bằng cách nhấn vào nút breadcrumb tên miền ở góc trên bên phải hay không.
  4. Chuyển giao gốc: Nếu tất cả các kiểm tra đều thành công, iOS sẽ khởi chạy ứng dụng gốc và truyền một đối tượng NSUserActivity chứa URL đã nhấp cho ủy quyền ứng dụng hoặc trình xử lý vòng đời SwiftUI.
  5. Phương án dự phòng Safari: Nếu ứng dụng bị thiếu, đường dẫn không khớp hoặc tên miền chưa được xác minh, iOS sẽ khởi chạy Safari và truy cập trang web như bình thường.

Các nhà phát triển có thể kiểm tra các chuyển tiếp định tuyến này bằng cách sử dụng công cụ kiểm tra liên kết tương tác của chúng tôi để xác minh mã phản hồi và ánh xạ miền.

Để đảm bảo định tuyến Universal Link hoàn hảo trên toàn bộ chiến dịch tiếp thị và cơ sở hạ tầng dành cho nhà phát triển của bạn, hãy tuân thủ những thực tiễn tốt nhất đã được kiểm chứng này:

  • Không bao giờ bọc Universal Links trong chuyển hướng tiêu chuẩn: Nếu một liên kết đi qua chuyển hướng 301/302 chung trên một miền không liên kết, iOS sẽ phá vỡ chuỗi và điều hướng lần nhấp sang Safari. Tìm hiểu thêm trong hướng dẫn liên kết sâu so với rút gọn URL của chúng tôi.
  • Tính đến trình duyệt trong ứng dụng xã hội: Các ứng dụng như Instagram, TikTok và Facebook ghi lại các lượt nhấp bên trong webview được cách ly. Sử dụng liên kết sâu thông minh được hỗ trợ bởi DSLink, có thể phát hiện webview và kích hoạt các giao thức intent để thoát ra.
  • Hỗ trợ các đường dẫn nội dung chung: Đảm bảo rằng ứng dụng di động gốc của bạn và máy chủ web của bạn chia sẻ các đường dẫn định tuyến URL nhất quán (ví dụ: /item/123 định tuyến đến cùng một sản phẩm trên cả web và ứng dụng).
  • Liên tục xác thực cú pháp AASA: Sử dụng Công cụ Xác thực API Tìm kiếm Ứng dụng của Apple để kiểm tra rằng tệp AASA của bạn vẫn hợp lệ, không bị hỏng và được định dạng đúng sau mỗi lần triển khai máy chủ.

Bằng cách thành thạo Apple Universal Links và kết hợp chúng với định tuyến thông minh đa nền tảng, bạn mang đến những trải nghiệm di động liền mạch giúp người dùng luôn gắn bó với phần mềm gốc của bạn.

Câu hỏi thường gặp

Liên kết Chung trong iOS là gì?

Liên kết Universal là một địa chỉ web HTTPS tiêu chuẩn mà Apple iOS nhận biết là liên kết với một ứng dụng đã được cài đặt, cho phép hệ điều hành mở trực tiếp ứng dụng gốc thay vì tải Safari.

Apple xác minh một ứng dụng sở hữu miền như thế nào?

Apple xác minh quyền sở hữu thông qua tệp JSON apple-app-site-association (AASA) được lưu trữ trên tên miền web. iOS tải tệp này khi cài đặt ứng dụng để xác minh App ID và đường dẫn có khớp hay không.

Chuyện gì sẽ xảy ra nếu người dùng nhấp vào Liên kết Universal nhưng không cài đặt ứng dụng?

Nếu ứng dụng không được cài đặt, iOS sẽ tự động tải trang web đích trong Safari mà không hiển thị bất kỳ thông báo lỗi, hộp thoại cảnh báo hoặc màn hình bị hỏng nào.

Liệu Liên kết Universal có thể được sử dụng trên các thiết bị Android không?

Không. Liên kết Universal là một chuẩn riêng của Apple dành cho iOS và iPadOS. Android sử dụng công nghệ tương đương gọi là Liên kết Ứng dụng Android, dựa trên xác minh Liên kết Tài sản Kỹ thuật số.