Hướng dẫn cài đặt Deep Link cho ứng dụng Native trên Android và iOS
Trong phần trước, tôi đã chia sẻ cách cài đặt Deep Link ở cấp độ Server. Trong phần này, chúng ta sẽ cùng nhau tìm hiểu chi tiết cách cấu hình Deep Link cho ứng dụng Native trên hai nền tảng phổ biến là Android và iOS.
Cài đặt Deep Link trên Native Android
Để cấu hình Deep Link trong ứng dụng Android, bạn cần mở file AndroidManifest.xml
và thêm đoạn mã sau vào bên trong thẻ <Activity>
tương ứng:
xml
<!-- Chỉ định xử lý Deep Link: false nếu sử dụng trình xử lý bên thứ ba, true nếu sử dụng trình xử lý mặc định -->
<meta-data android:name="flutterdeeplinkingenabled" android:value="false" />
<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="share-tntkhang.vercel.app" />
<!-- Có thể thêm pathPrefix để điều hướng sâu hơn vào ứng dụng -->
<data android:scheme="https" android:host="share-tntkhang.vercel.app" android:pathPrefix="/product" />
<data android:scheme="https" android:host="share-tntkhang.vercel.app" android:pathPrefix="/detail" />
</intent-filter>
Mã đầy đủ cho thẻ Activity
xml
<activity
android:name=".MainActivity"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
android:exported="true"
android:hardwareAccelerated="true"
android:launchMode="singleTop"
android:theme="@style/LaunchTheme"
android:windowSoftInputMode="adjustResize">
<!-- Cấu hình mặc định cho theme ứng dụng -->
<meta-data
android:name="io.flutter.embedding.android.NormalTheme"
android:resource="@style/NormalTheme" />
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<!-- Cấu hình Deep Link -->
<meta-data android:name="flutterdeeplinkingenabled" android:value="false" />
<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="share-move2bfit.vercel.app" android:pathPrefix="/friend" />
<data android:scheme="https" android:host="share-move2bfit.vercel.app" android:pathPrefix="/challenge" />
</intent-filter>
</activity>
Cài đặt Deep Link trên Native iOS
Để cấu hình Deep Link trong ứng dụng iOS, bạn cần có tài khoản Apple Developer. Dưới đây là các bước cần thực hiện:
-
Kích hoạt Associated Domains trên trang Apple Developer:
- Đăng nhập vào tài khoản Apple Developer của bạn với Apple ID.
- Nhấp vào Certificates, Identifiers & Profiles.
- Chọn Identifiers và nhấp vào ID ứng dụng của bạn.
- Trong tab Capabilities, đánh dấu ô Associated Domains và nhấn Save.
-
Mở XCode và làm theo các bước sau:
- Mở dự án Runner.
- Chọn Target Runner và chuyển sang tab Signing and Capabilities.
- Nhấn vào + Capability và thêm Associated Domains.
Lưu ý về cách cấu hình
Khi cấu hình Associated Domains, bạn cần thêm applinks trước tên miền của bạn. Ví dụ:
applinks:share-tntkhang.vercel.app
. Hãy nhớ rằng https
là mặc định nên không cần thêm vào.
Kiểm tra tính năng Deep Link
Sau khi hoàn thành cài đặt Deep Link, bạn có thể thử nghiệm bằng cách nhấp vào các liên kết từ Gmail hoặc ứng dụng Notes. Nếu ứng dụng chưa mở, đường link sẽ dẫn đến App Store tương ứng.
Lưu ý rằng có một số ứng dụng không hỗ trợ Deep Link mà sẽ mở một trình duyệt nội bộ, chẳng hạn như Zalo. Để kiểm tra ứng dụng có hỗ trợ Deep Link hay không, bạn có thể thử nhấp vào liên kết youtube.com
. Nếu ứng dụng điều hướng đến Youtube, tức là ứng dụng đó có hỗ trợ tính năng này.
Phần tiếp theo, tôi sẽ hướng dẫn cách bắt dữ liệu trong ứng dụng Flutter và điều hướng tới màn hình cần hiển thị.
source: viblo