Thêm Đường liên kết trong ứng dụng Android

Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.

Đường liên kết trong ứng dụng Android (Android App Link) là URL HTTP đưa người dùng đến thẳng nội dung cụ thể trong ứng dụng Android. Đường liên kết trong ứng dụng Android có thể làm tăng lưu lượng truy cập vào ứng dụng, giúp bạn biết được nội dung ứng dụng nào được dùng nhiều nhất đồng thời giúp người dùng dễ dàng chia sẻ cũng như tìm được nội dung trong ứng dụng đã cài đặt.

Cách thêm tính năng hỗ trợ cho Đường liên kết trong ứng dụng Android:

  1. Tạo bộ lọc ý định trong tệp kê khai.
  2. Thêm mã nguồn vào hoạt động của ứng dụng để xử lý đường liên kết ngược.
  3. Liên kết ứng dụng với trang web qua giao thức Đường liên kết đến tài sản kỹ thuật số (Digital Asset Links).

Trợ lý đường liên kết trong ứng dụng (App Links Assistant) trong Android Studio 2.3 trở lên giúp đơn giản hoá quy trình bằng một trình hướng dẫn cụ thể từng bước theo mô tả dưới đây.

Để biết thêm thông tin về cách hoạt động của đường liên kết trong ứng dụng cũng như những lợi ích mà loại đường liên kết này mang lại, hãy đọc nội dung Xử lý Đường liên kết trong ứng dụng Android.

Thêm bộ lọc ý định

Trợ lý đường liên kết trong ứng dụng (App Links Assistant) trong Android Studio có thể giúp bạn tạo bộ lọc ý định trong tệp kê khai và ánh xạ các URL hiện có trong trang web đến các hoạt động trong ứng dụng. Ngoài ra, Trợ lý này cũng thêm mã nguồn Java mẫu vào từng hoạt động tương ứng để xử lý ý định.

Để thêm bộ lọc ý định và xử lý URL, hãy làm theo các bước sau:

  1. Chọn Tools (Công cụ) > App Links Assistant (Trợ lý đường liên kết trong ứng dụng).
  2. Nhấp vào Open URL Mapping Editor (Mở trình chỉnh sửa bản đồ ánh xạ URL) rồi nhấp vào biểu tượng Thêm ở cuối danh sách URL Mapping (Bản đồ ánh xạ URL) để thêm mục ánh xạ URL mới.
  3. Thêm thông tin chi tiết cho mục ánh xạ URL mới:
    Trợ lý đường liên kết trong ứng dụng hướng dẫn bạn từng bước thực hiện tính năng ánh xạ URL cơ bản

    Hình 1. Thêm thông tin cơ bản về cấu trúc liên kết của trang web để ánh xạ URL đến các hoạt động trong ứng dụng.

    1. Nhập URL của trang web vào trường Host (Máy chủ lưu trữ).
    2. Thêm một path, pathPrefix hoặc pathPattern cho những URL mà bạn muốn ánh xạ. Ví dụ: nếu bạn có một ứng dụng chia sẻ công thức nấu ăn, trong đó tất cả công thức nấu ăn đều hiện hữu ở trong cùng một hoạt động và tất cả công thức tương ứng trên trang web đều ở trong thư mục /recipe, hãy sử dụng pathPrefix rồi nhập /recipe. Nhờ đó, URL http://www.recipe-app.com/recipe/grilled-potato-salad sẽ ánh xạ tới hoạt động bạn chọn trong bước sau.
    3. Chọn Activity (Hoạt động) mà URL sẽ đưa người dùng đến.
    4. Nhấp vào OK.
  4. Trợ lý đường liên kết trong ứng dụng thêm các bộ lọc ý định dựa trên bản đồ ánh xạ URL của bạn vào tệp AndroidManifest.xml và lảm nổi bật bộ lọc đó trong trường Preview (Xem trước). Nếu bạn muốn thay đổi gì đó, hãy nhấp vào Open AndroidManifest.xml (Mở tệp AndroidManifest.xml) để chỉnh sửa bộ lọc ý định. (Tìm hiểu thêm về các bộ lọc ý định trong Android.)

    Lưu ý: Để hỗ trợ thêm nhiều đường liên kết mà không cần cập nhật ứng dụng, bạn nên xác định một bản đồ ánh xạ URL để hỗ trợ những URL sau này bạn sẽ bổ sung. Ngoài ra, hãy nhớ thêm một URL cho màn hình chính của ứng dụng để URL này được đưa vào kết quả tìm kiếm.

  5. Để đảm bảo rằng bạn đã ánh xạ URL đúng cách, hãy nhập URL vào trường Check URL Mapping (Kiểm tra bản đồ ánh xạ URL) rồi nhấp vào Check Mapping (Kiểm tra bản đồ ánh xạ). Nếu URL hoạt động chính xác thì thông báo thành công sẽ cho thấy URL bạn đã ánh xạ đến hoạt động đã chọn.

Xử lý đường liên kết ngược

Khi bạn đã chắc chắn rằng mục ánh xạ URL của bạn đang hoạt động chính xác, hãy thêm tính năng logic để xử lý ý định bạn đã tạo.

  1. Nhấp vào Select Activity (chọn hoạt động) trong App Links Assistant (Trợ lý đường liên kết trong ứng dụng).
  2. Chọn một hoạt động trong danh sách rồi nhấp vào Insert Code (Thêm mã nguồn).

Trợ lý đường liên kết trong ứng dụng thêm mã nguồn vào tệp Java của hoạt động, tương tự như sau (Xin lưu ý: hiện tại, Trợ lý đường liên kết trong ứng dụng không hỗ trợ Kotlin, do đó bạn cần thêm mã nguồn theo cách thủ công):

Kotlin

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)

    val appLinkIntent = intent
    val appLinkAction = appLinkIntent.action
    val appLinkData = appLinkIntent.data

}

Java

// ATTENTION: This was auto-generated to handle app links.
Intent appLinkIntent = getIntent();
String appLinkAction = appLinkIntent.getAction();
Uri appLinkData = appLinkIntent.getData();

Tuy vậy, mã này chưa hoàn tất. Do đó, bạn phải lập tức thực hiện một hành động dựa trên URI trong appLinkData, chẳng hạn như hiện nội dung tương ứng. Ví dụ: đối với ứng dụng chia sẻ công thức nấu ăn nêu trên, có thể mã của bạn giống mẫu sau đây:

Kotlin

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    ...
    handleIntent(intent)
}

override fun onNewIntent(intent: Intent) {
    super.onNewIntent(intent)
    handleIntent(intent)
}

private fun handleIntent(intent: Intent) {
    val appLinkAction = intent.action
    val appLinkData: Uri? = intent.data
    if (Intent.ACTION_VIEW == appLinkAction) {
        appLinkData?.lastPathSegment?.also { recipeId ->
            Uri.parse("content://com.recipe_app/recipe/")
                    .buildUpon()
                    .appendPath(recipeId)
                    .build().also { appData ->
                        showRecipe(appData)
                    }
        }
    }
}

Java

protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  ...
  handleIntent(getIntent());
}

protected void onNewIntent(Intent intent) {
  super.onNewIntent(intent);
  handleIntent(intent);
}

private void handleIntent(Intent intent) {
    String appLinkAction = intent.getAction();
    Uri appLinkData = intent.getData();
    if (Intent.ACTION_VIEW.equals(appLinkAction) && appLinkData != null){
        String recipeId = appLinkData.getLastPathSegment();
        Uri appData = Uri.parse("content://com.recipe_app/recipe/").buildUpon()
            .appendPath(recipeId).build();
        showRecipe(appData);
    }
}

Liên kết ứng dụng với trang web

Sau khi thiết lập tính năng hỗ trợ URL cho ứng dụng, Trợ lý đường liên kết trong ứng dụng sẽ tạo tệp Digital Asset Links (Đường liên kết đến tài sản kỹ thuật số) mà bạn có thể sử dụng để liên kết trang web với ứng dụng.

Ngoài ra, thay vì sử dụng tệp Digital Asset Links (Đường liên kết đến tài sản kỹ thuật số), bạn cũng có thể liên kết trang web với ứng dụng qua Search Console.

Nếu bạn đang sử dụng Tính năng ký ứng dụng của Play cho ứng dụng, thì vân tay số của chứng chỉ do Trợ lý đường liên kết trong ứng dụng tạo ra thường không khớp với vân tay số trên thiết bị của người dùng. Trong trường hợp này, bạn có thể thấy đoạn mã JSON chính xác của Đường liên kết đến tài sản kỹ thuật số cho ứng dụng của mình trong tài khoản nhà phát triển trên Play Console, trong phần Release > Setup > App Integrity.

Để liên kết ứng dụng và trang web qua Trợ lý đường liên kết trong ứng dụng), hãy nhấp vào Open Digital Asset Links File Generator (Mở trình tạo tệp Đường liên kết đến tài sản kỹ thuật số) trên Trợ lý đường liên kết trong ứng dụng rồi làm theo các bước sau:

Trợ lý đường liên kết trong ứng dụng hướng dẫn bạn từng bước thực hiện tính năng ánh xạ URL cơ bản

Hình 2. Nhập thông tin chi tiết về trang web và ứng dụng để tạo tệp Digital Asset Links (Đường liên kết đến tài sản kỹ thuật số).

  1. Nhập Site domain (Miền trang web) và Application ID (Mã ứng dụng).
  2. Để thêm tính năng hỗ trợ vào tệp Digital Asset Links (Đường liên kết đến tài sản kỹ thuật số) cho tính năng Smart Lock cho Mật khẩu, hãy chọn Support sharing credentials between the app and the website (Hỗ trợ chia sẻ thông tin đăng nhập giữa ứng dụng và trang web) rồi nhập URL đăng nhập của trang web. Thao tác này sẽ thêm chuỗi sau vào tệp Digital Asset Links (Đường liên kết đến tài sản kỹ thuật số) để khai báo rằng ứng dụng và trang web đang dùng chung thông tin đăng nhập: delegate_permission/common.get_login_creds. Tìm hiểu thêm về cách hỗ trợ Smart Lock cho Mật khẩu trong ứng dụng.
  3. Chỉ định cấu hình ký tên hoặc chọn một tệp kho khoá. Hãy nhớ chọn tệp cấu hình hoặc kho khoá phù hợp với bản phát hành hoặc bản gỡ lỗi của ứng dụng. Nếu bạn muốn thiết lập bản dựng chính thức, hãy sử dụng cấu hình bản phát hành. Còn nếu bạn muốn kiểm thử bản dựng, hãy sử dụng cấu hình gỡ lỗi.
  4. Nhấp vào Generate Digital Asset Links file (Tạo tệp Đường liên kết đến tài sản kỹ thuật số).
  5. Sau khi Android Studio tạo tệp, hãy nhấp vào Save file (Lưu tệp) để tải xuống.
  6. Tải tệp assetlinks.json lên trang web rồi cung cấp quyền đọc cho tất cả mọi người, tại https://<yoursite>/.well-known/assetlinks.json.

    Lưu ý quan trọng: Hệ thống xác minh tệp Digital Asset Links (Đường liên kết đến tài sản kỹ thuật số) thông qua giao thức HTTPS mã hoá. Do đó, hãy đảm bảo rằng tệp assetlinks.json có thể truy cập được qua kết nối HTTPS, bất kể bộ lọc ý định của ứng dụng có bao gồm https hay không.

  7. Nhấp vào Link and Verify (Liên kết và xác minh) để xác nhận rằng bạn đã tải đúng tệp (Digital Asset Links Đường liên kết đến tài sản kỹ thuật số) lên đúng vị trí.

Tìm hiểu thêm về cách liên kết trang web với ứng dụng thông qua tệp Digital Asset Links (Đường liên kết đến tài sản kỹ thuật số) trong nội dung Khai báo mối liên kết trang web.

Thử nghiệm Đường liên kết trong ứng dụng

Để chắc chắn rằng các đường liên kết mở ra đúng hoạt động, hãy làm theo các bước sau:

  1. Nhấp vào Test App Links (Thử nghiệm đường liên kết trong ứng dụng) trong App Links Assistant (Trợ lý đường liên kết trong ứng dụng).
  2. Nhập URL bạn muốn thử nghiệm vào trường URL, ví dụ: http://recipe-app.com/recipe/grilled-potato-salad.
  3. Hình 3. Khi URL bạn đang thử nghiệm ánh xạ thành công một hoạt động trong ứng dụng, Trợ lý đường liên kết trong ứng dụng sẽ cho thấy thông báo thành công và mở ứng dụng đến nội dung được chỉ định.

  4. Nhấp vào Run Test (Chạy thử nghiệm).
  5. Nếu mục ánh xạ URL không được thiết lập đúng cách hoặc không tồn tại, thông báo lỗi sẽ xuất hiện bên dưới URL trong cửa sổ Test App Links (Thử nghiệm đường liên kết trong ứng dụng). Nếu tồn tại mục ánh xạ URL, Android Studio sẽ chạy ứng dụng trong thiết bị hoặc trình mô phỏng tại hoạt động được chỉ định mà không hiện hộp thoại phân biệt ("trình chọn" ứng dụng), đồng thời hiện thông báo thành công trong cửa sổ App Link Testing (Thử nghiệm đường liên kết trong ứng dụng). Nếu Android Studio không chạy được ứng dụng, bạn sẽ thấy thông báo lỗi trong cửa sổ Run (Chạy) của Android Studio.

Để kiểm tra Đường liên kết trong ứng dụng Android thông qua Trợ lý đường liên kết trong ứng dụng, bạn phải có một thiết bị được kết nối hoặc thiết bị ảo chạy Android 6.0 (API cấp 23) trở lên. Để biết thêm thông tin, hãy xem nội dung hướng dẫn cách kết nối thiết bị hoặc tạo một Thiết bị ảo Android (AVD).