Cách kích hoạt các Liên kết Sâu trong Android
Vietnamese (Tiếng Việt) translation by Dai Phong (you can also view the original English article)
Liên kết sâu là gì?
Liên kết sâu trong Android mở một trang cụ thể bên trong một ứng dụng và có thể truyền dữ liệu đến nó. Các nhà phát triển có thể thấy liên kết sâu đặc biệt hữu ích cho các hành động, chẳng hạn như nhấn vào thông báo hoặc gửi một liên kết ứng dụng thông qua email.
Hãy lấy một ứng dụng email làm ví dụ. Khi người dùng nhấp vào thông báo một email mà họ nhận được, nó sẽ mở ra một liên kết sâu sẽ đưa họ đến email trong ứng dụng. Cuối cùng nhưng không kém phần quan trọng, các liên kết sâu cũng cho phép Google lập chỉ mục ứng dụng của bạn và liên kết đến các phần cụ thể của ứng dụng trong các kết quả tìm kiếm. Các liên kết sâu xuất hiện như là một kết quả tìm kiếm trong Google và có thể đưa người dùng đến một phần cụ thể của ứng dụng của bạn.
Cài đặt liên kết sâu
Để thêm một liên kết sâu vào ứng dụng của bạn, bạn phải thêm nó vào tập tin manifest của android như một bộ intent-filter. Hãy xem ví dụ sau.
<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity" android:label="@string/app_name" android:theme="@style/AppTheme.NoActionBar"> <intent-filter> <!-- Notice that the MAIN activity already has an intent-filter. This is not A deep link because its action is not a VIEW--> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="com.example.matthew.deeplinks.LinkActivity" android:label="@string/title_activity_link" android:theme="@style/AppTheme.NoActionBar"> <intent-filter> <!-- Sets the intent action to view the activity --> <action android:name="android.intent.action.VIEW" /> <!-- Allows the link to be opened from a web browser --> <category android:name="android.intent.category.BROWSABLE" /> <!-- Allows the deep link to be used without specifying the app name --> <category android:name="android.intent.category.DEFAULT" /> <!-- URI tutsplus://deeplink --> <data android:scheme="tutsplus" android:host="deeplink"/> <!-- URI https://www.mydeeplink.com --> <data android:scheme="http" android:host="www.mydeeplink.com"/> </intent-filter> </activity> </application>
Các thẻ <action>
và <data>
được yêu cầu. Thẻ <action>
chọn những gì sẽ xảy ra trong ứng dụng khi liên kết được nhấp vào. Thẻ <data>
chỉ định các URI nào được chấp nhận như là các liên kết sâu đến trang.
Trong ví dụ trên, chuyển đến http://www.mydeeplink.com hoặc tutsplus://deeplink sẽ đưa người dùng đến activity LinkActivity
. Các thẻ <category>
xác định các thuộc tính của liên kết sâu. Chú ý rằng bạn cần phải tạo một intent-filter riêng biệt cho mỗi lược đồ URI và mỗi activity.
Bạn có thể tạo nhiều liên kết đến cùng một activity. Để phân biệt những cái này, bạn cần phải phân tích dữ liệu của intent trong code của bạn để phân biệt các liên kết. Điều này thường được thực hiện trong phương thức onCreate()
bằng cách đọc vào dữ liệu và thực hiện hành động phù hợp.
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_link); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); Intent in = getIntent(); Uri data = in.getData(); // Do something with data. For example, open certain email in view. }
Thử nghiệm liên kết sâu
Android Studio giúp dễ dàng kiểm thử các liên kết sâu. Nhấp vào Run > Edit Configurations để chỉnh sửa cấu hình của dự án.






Mở tab General ở trên cùng và nhập URI vào trong trường Deep Link ở trong phần Launch Options. Khi bạn khởi chạy ứng dụng của bạn bằng Android Studio, nó sẽ cố gắng mở URI được chỉ định.
Tổng kết
Bây giờ thì bạn đã biết cách làm thế nào để tạo và sử dụng các liên kết sâu, bạn có thể mở những cánh cửa mới cho người dùng tương tác với ứng dụng của bạn. Người dùng có thể sử dụng tìm kiếm Google trên thiết bị của họ để tìm kiếm các trang bên trong ứng dụng của bạn và bạn có thể tạo các thông báo mở một trang cụ thể ở trong ứng dụng của bạn khi được nhấp vào.
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Update me weekly