Chuyển đến nội dung

Phát triển

Deep link

Deep link mở một màn hình cụ thể bên trong ứng dụng đã cài đặt, chẳng hạn một thử thách, một lời mời giới thiệu hoặc một trang sản phẩm. Nếu ứng dụng chưa được cài đặt, khách truy cập sẽ được đưa đến cửa hàng, giống như với liên kết thông minh. Deep link có trong Pro, Studio và Trọn đời. Universal Links và Android App Links còn cần tên miền tùy chỉnh, là một phần của Studio.

Cách deep link hoạt động

Thêm /open/ và đường dẫn trong ứng dụng vào liên kết thông minh. Query string cũng được chuyển tiếp:

https://mapps.one/habitly/open/challenges/30-days?ref=newsletter
Khách truy cậpĐiều gì xảy ra
iPhone hoặc iPad, khi đã đặt iOS URL scheme Một trang ngắn thử mở habitly://challenges/30-days?ref=newsletter. Nếu ứng dụng chưa được cài đặt, khách truy cập tiếp tục đến App Store.
Android hoặc Huawei, khi đã đặt tên gói Một trang ngắn mở Android intent cho cùng đường dẫn, chỉ giới hạn ở tên gói của bạn. Chrome mở ứng dụng nếu đã cài đặt, nếu không sẽ đi theo đích dự phòng đến Google Play.
Điện thoại hoặc máy tính bảng, khi chưa có cài đặt deep link cho nền tảng đó Được chuyển hướng thẳng đến đích dự phòng.
Máy tính và bot Được chuyển hướng đến liên kết thông minh, giữ nguyên query string.

Đích dự phòng là nơi mà liên kết thông minh sẽ đưa thiết bị đó đến, theo quy tắc chuyển hướng của bạn, kèm các thẻ UTM được chuyển tiếp. Nếu nền tảng đó không có liên kết cửa hàng, đích dự phòng là landing page. Nếu deep link hoàn toàn chưa được thiết lập, hoặc gói không bao gồm tính năng này, mọi khách truy cập đều được chuyển hướng đến liên kết thông minh.

Đường dẫn có thể chứa chữ cái, chữ số và các ký tự / _ - . ~ %. Các ký tự khác sẽ bị xóa, vì vậy hãy mã hóa phần trăm mọi ký tự khác, chẳng hạn dấu cách (%20).

Thiết lập

Mở tab Deep link của ứng dụng và điền các trường cho những nền tảng bạn hỗ trợ:

TrườngVí dụDùng cho
iOS URL schemehabitly://Mở ứng dụng từ trang chuyển hướng trên iPhone và iPad
Apple Team IDA1B2C3D4E5Universal Links. ID gồm 10 ký tự trong mục Membership details của tài khoản Apple Developer của bạn.
iOS bundle IDcom.habitly.appUniversal Links
Tên gói Androidcom.habitly.appMở ứng dụng trên thiết bị Android và Huawei
Android schemehabitlyScheme mà intent filter của bạn xử lý
Dấu vân tay chứng chỉ SHA-25614:6D:E9:83:...:44:E5Android App Links. Thêm một hoặc nhiều dấu vân tay, phân tách bằng dấu phẩy, dấu cách hoặc xuống dòng.
Android scheme: đặt thành scheme tùy chỉnh mà ứng dụng của bạn đăng ký, chẳng hạn habitly. Nếu bạn để trống, https sẽ được dùng và phần đầu của đường dẫn trở thành host (https://challenges/30-days). Cách này chỉ hoạt động nếu intent filter của bạn xử lý dạng đó.

Đăng ký scheme trong ứng dụng

iOS, trong Info.plist:

<key>CFBundleURLTypes</key>
<array>
  <dict>
    <key>CFBundleURLSchemes</key>
    <array>
      <string>habitly</string>
    </array>
  </dict>
</array>

Android, trong AndroidManifest.xml:

<activity android:name=".MainActivity" android:exported="true">
  <intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="habitly" />
  </intent-filter>
</activity>

Trong ứng dụng, hãy đọc URL nhận được, điều hướng đến màn hình tương ứng và đọc các tham số truy vấn bạn cần. Hãy đưa các đường dẫn không xác định về màn hình chính, vì người dùng có thể tự sửa URL.

Universal Links và Android App Links

Liên kết dùng scheme hiển thị một trang chuyển hướng ngắn trước, và iOS có thể yêu cầu khách truy cập xác nhận. Liên kết đã xác minh bỏ qua bước đó: khi ứng dụng đã được cài đặt, hệ thống mở ứng dụng trực tiếp. Việc xác minh cần một tên miền chỉ thuộc về ứng dụng của bạn, nên tính năng này hoạt động trên tên miền tùy chỉnh. Khi get.habitly.app đã được kết nối, mapps.one sẽ phục vụ các tệp liên kết miền cho bạn:

TệpĐược tạo từ
https://get.habitly.app/.well-known/apple-app-site-association
(cũng có tại /apple-app-site-association)
Apple Team ID và bundle ID
https://get.habitly.app/.well-known/assetlinks.jsonTên gói Android và dấu vân tay SHA-256

Tệp của Apple bao gồm mọi đường dẫn trong /open/:

{
  "applinks": {
    "details": [
      {
        "appIDs": ["A1B2C3D4E5.com.habitly.app"],
        "components": [
          { "/": "/open/*", "comment": "Deep links created with mapps.one" }
        ]
      }
    ]
  },
  "webcredentials": { "apps": ["A1B2C3D4E5.com.habitly.app"] }
}

Tệp của Android:

[
  {
    "relation": ["delegate_permission/common.handle_all_urls"],
    "target": {
      "namespace": "android_app",
      "package_name": "com.habitly.app",
      "sha256_cert_fingerprints": [
        "14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5"
      ]
    }
  }
]

Mỗi tệp trả về "404 Not Found" cho đến khi các trường của tệp đó hợp lệ: Team ID gồm 10 ký tự và bundle ID với Apple, và tên gói cùng ít nhất một dấu vân tay theo định dạng AA:BB:... (32 cặp) với Android. Hãy dùng dấu vân tay của khóa Play App Signing trong Play Console → App integrity, và thêm cả khóa tải lên (upload key) nếu bạn kiểm thử các bản build được ký cục bộ. Các tệp được lưu trong bộ nhớ đệm một giờ. Apple cũng lưu đệm các tệp này trên máy chủ riêng, vì vậy hãy cài đặt lại ứng dụng để kiểm tra thay đổi.

Cấu hình ứng dụng

iOS: thêm capability Associated Domains với applinks:get.habitly.app.

Android: thêm intent filter đã xác minh cho tên miền của bạn:

<intent-filter android:autoVerify="true">
  <action android:name="android.intent.action.VIEW" />
  <category android:name="android.intent.category.DEFAULT" />
  <category android:name="android.intent.category.BROWSABLE" />
  <data android:scheme="https" android:host="get.habitly.app" android:pathPrefix="/open/" />
</intent-filter>

Sau đó dùng các liên kết như https://get.habitly.app/open/challenges/30-days trong chiến dịch của bạn. Khi ứng dụng chưa được cài đặt, trình duyệt sẽ tải trang và luồng dự phòng tương tự sẽ chạy.

Dùng tên miền của bạn cho liên kết đã xác minh. Tệp liên kết miền chỉ được phục vụ trên tên miền tùy chỉnh, vì mapps.one được nhiều ứng dụng dùng chung. Liên kết trên mapps.one/habitly/open/ vẫn hoạt động thông qua trang chuyển hướng. URL deep link hiển thị trong bảng điều khiển và API dùng mapps.one, vì vậy hãy thay host bằng tên miền của bạn khi muốn dùng liên kết đã xác minh.

Phân tích

Một lượt mở được tính vào Lượt mở deep link khi điện thoại hoặc máy tính bảng tải một URL /open/ và mapps.one thử mở ứng dụng. Việc chuyển tiếp đến cửa hàng dự phòng không được tính thêm lần nữa. Liên kết đã xác minh mở ứng dụng trực tiếp không bao giờ đến mapps.one, nên không được tính. Hãy dùng công cụ phân tích trong ứng dụng của riêng bạn cho các lượt đó.