Google is committed to advancing racial equity for Black communities. See how.
Trang này được dịch bởi Cloud Translation API.
Switch to English

Nhận liên kết động Firebase trên Android

Để nhận Liên kết động Firebase mà bạn đã tạo , bạn phải bao gồm SDK liên kết động trong ứng dụng của mình và gọi phương thức FirebaseDynamicLinks.getDynamicLink() khi ứng dụng của bạn tải để nhận dữ liệu được chuyển vào Liên kết động.

  1. Nếu bạn chưa có, hãy thêm Firebase vào dự án Android của bạn .

    Khi bạn đăng ký ứng dụng của mình, hãy chỉ định khóa ký SHA-1 của bạn. Nếu bạn sử dụng Liên kết ứng dụng, hãy chỉ định khóa SHA-256 của bạn.

  2. Trong dự án cấp của bạn build.gradle tập tin, hãy chắc chắn để bao gồm kho Maven của Google trong cả hai bạn buildscriptallprojects phần.
  3. Thêm phần phụ thuộc cho thư viện Liên kết động Android vào tệp Gradle mô-đun (cấp ứng dụng) của bạn (thường là app/build.gradle ).

    Để có trải nghiệm tối ưu với Liên kết động, chúng tôi khuyên bạn nên bật Google Analytics trong dự án của mình. Ngoài ra, là một phần của quá trình thiết lập Analytics, bạn cần thêm SDK Firebase cho Analytics vào ứng dụng của mình.

    Java

    implementation 'com.google.firebase:firebase-dynamic-links:19.1.0'
    implementation 'com.google.firebase:firebase-analytics:17.4.4'

    Kotlin + KTX

    implementation 'com.google.firebase:firebase-dynamic-links-ktx:19.1.0'
    implementation 'com.google.firebase:firebase-analytics-ktx:17.4.4'
  4. Trong bảng điều khiển Firebase , hãy mở phần Liên kết động . Chấp nhận các điều khoản dịch vụ nếu bạn được nhắc làm như vậy.

Giống như với các liên kết sâu đơn thuần , bạn phải thêm một bộ lọc mục đích mới vào hoạt động xử lý các liên kết sâu cho ứng dụng của mình. Bộ lọc ý định sẽ bắt các liên kết sâu trong miền của bạn, vì Liên kết động sẽ chuyển hướng đến miền của bạn nếu ứng dụng của bạn được cài đặt. Điều này là bắt buộc để ứng dụng của bạn nhận được dữ liệu Liên kết động sau khi được cài đặt / cập nhật từ Cửa hàng Play và một lần nhấn vào nút Tiếp tục. Trong AndroidManifest.xml :

<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:host="example.com"
        android:scheme="https"/>
</intent-filter>

Khi người dùng mở Liên kết động có liên kết sâu đến lược đồ và máy chủ lưu trữ mà bạn chỉ định, ứng dụng của bạn sẽ bắt đầu hoạt động với bộ lọc ý định này để xử lý liên kết.

Để nhận liên kết sâu, hãy gọi phương thức getDynamicLink() :

Java

FirebaseDynamicLinks.getInstance()
        .getDynamicLink(getIntent())
        .addOnSuccessListener(this, new OnSuccessListener<PendingDynamicLinkData>() {
            @Override
            public void onSuccess(PendingDynamicLinkData pendingDynamicLinkData) {
                // Get deep link from result (may be null if no link is found)
                Uri deepLink = null;
                if (pendingDynamicLinkData != null) {
                    deepLink = pendingDynamicLinkData.getLink();
                }


                // Handle the deep link. For example, open the linked
                // content, or apply promotional credit to the user's
                // account.
                // ...

                // ...
            }
        })
        .addOnFailureListener(this, new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                Log.w(TAG, "getDynamicLink:onFailure", e);
            }
        });

Kotlin + KTX

Firebase.dynamicLinks
        .getDynamicLink(intent)
        .addOnSuccessListener(this) { pendingDynamicLinkData ->
            // Get deep link from result (may be null if no link is found)
            var deepLink: Uri? = null
            if (pendingDynamicLinkData != null) {
                deepLink = pendingDynamicLinkData.link
            }

            // Handle the deep link. For example, open the linked
            // content, or apply promotional credit to the user's
            // account.
            // ...

            // ...
        }
        .addOnFailureListener(this) { e -> Log.w(TAG, "getDynamicLink:onFailure", e) }

Bạn phải gọi getDynamicLink() trong mọi hoạt động có thể được khởi chạy bởi liên kết, mặc dù liên kết có thể có sẵn từ mục đích sử dụng getIntent().getData() . Gọi getDynamicLink() truy xuất liên kết và xóa dữ liệu đó để ứng dụng của bạn chỉ xử lý một lần.

Bạn thường gọi getDynamicLink() trong hoạt động chính cũng như bất kỳ hoạt động nào được khởi chạy bởi bộ lọc ý định phù hợp với liên kết.

Ghi lại số liệu phân tích

Các sự kiện sau có thể được tự động theo dõi trong Google Analytics và hiển thị trong bảng điều khiển Firebase.

  • dynamic_link_app_open
  • dynamic_link_first_open
  • dynamic_link_app_update

Để đăng ký các sự kiện này, bạn cần định cấu hình Google Analytics trước khi truy xuất liên kết sâu. Kiểm tra các điều kiện sau được đáp ứng:

  • Gọi FirebaseDynamicLinks.getDynamicLink() trong các điểm nhập ứng dụng của bạn:
    • Các hoạt động khởi động. ví dụ: action="android.intent.action.MAIN" , category="android.intent.category.LAUNCHER" .
    • Điểm vào hoạt động. ví dụ: onStart() , onCreate() .
    • Các hoạt động liên kết sâu sắc.
  • Thiết lập và sử dụng Google Analytics:
    • Bao gồm phần phụ thuộc Google Analytics. Điều này thường được plugin google-services Gradle thêm tự động.
    • Bao gồm tệp cấu hình google-services.json trong ứng dụng của bạn.
    • Gọi FirebaseAnalytics.getInstance() trước khi gọi FirebaseDynamicLinks.getDynamicLink() .

Trên Android 6.0 (API cấp 23) trở lên, bạn có thể thiết lập ứng dụng của mình để xử lý các Liên kết động trực tiếp khi ứng dụng của bạn đã được cài đặt bằng cách sử dụng Liên kết ứng dụng Android .

Đảm bảo rằng bạn đã thêm tệp tham chiếu chứng chỉ SHA256 cho ứng dụng vào dự án của mình trong bảng điều khiển Firebase . Liên kết động sẽ xử lý việc thiết lập liên kết trang web Liên kết ứng dụng cho miền Liên kết động của bạn.

Thêm bộ lọc ý định được tự động xác minh vào Hoạt động sẽ xử lý Liên kết động, đặt máy chủ lưu trữ thành miền Liên kết động của dự án của bạn như được tìm thấy trong bảng điều khiển Firebase . Trong AndroidManifest.xml :

<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:host="example.com/link" android:scheme="http"/>
    <data android:host="example.com/link" android:scheme="https"/>
</intent-filter>

Lưu ý rằng android:host phải được đặt thành miền Liên kết động của bạn chứ không phải miền của liên kết sâu của bạn.

Tất cả các bộ lọc ý định autoVerify trong tệp kê khai của bạn phải được đăng ký để Liên kết ứng dụng tương tác. Firebase tự động xử lý điều này cho các miền Liên kết động của bạn, nhưng bạn có thể kiểm tra điều này bằng cách mở tệp assetlinks.json được lưu trữ trên miền Liên kết động của bạn:

https://YOUR_DOMAIN/.well-known/assetlinks.json
Tất cả các tên gói ứng dụng Firebase của bạn phải được bao gồm.

Liên kết động bây giờ sẽ được gửi trực tiếp đến ứng dụng của bạn. Bạn sẽ có thể nhận được liên kết sâu và dữ liệu Liên kết động khác bằng cách gọi getDynamicLink() trong Hoạt động mà bạn đã thêm bộ lọc ý định Liên kết ứng dụng vào (như được mô tả trong Xử lý liên kết sâu ).