Deep Links for App Content
Mở đầu Deep Links for App Content theo mình hiểu thì là liên kết tới app của bạn thông qua một đường link trên site nào đó.Đơn giản hơn là sẽ mở app của bạn nếu click vào cái link đó.Mình sẽ làm một demo để hiểu rõ hơn. Thực hành Frontend Đầu tiên bạn tạo 1 app mới có tên DemoDeepLinks.Sau ...
Mở đầu
Deep Links for App Content theo mình hiểu thì là liên kết tới app của bạn thông qua một đường link trên site nào đó.Đơn giản hơn là sẽ mở app của bạn nếu click vào cái link đó.Mình sẽ làm một demo để hiểu rõ hơn.
Thực hành
Frontend
Đầu tiên bạn tạo 1 app mới có tên DemoDeepLinks.Sau khi tạo xog bạn mở file AndroidManifest.xml sửa lại như sau
<activity android:name=".MainActivity"> <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="sdark.com" android:pathPrefix="/down" android:scheme="http" /> </intent-filter> </activity>
Đoạn code dưới tạo ra bộ lọc giúp android thu thập nội dung và cho phép người dùng mở ứng dụng của bạn
<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="tienbm.xyz" android:pathPrefix="/down" android:scheme="http" /> </intent-filter>
Đoạn code này giúp android có thể tìm kiếm được app của bạn
<action android:name="android.intent.action.VIEW" />
Thêm tùy chọn mở các app khác
<category android:name="android.intent.category.DEFAULT" />
Tạo ra bộ lọc khi truy cập từ một trình duyệt web.Nếu ko có nó thì khi click vào đường link sẽ không có giá trị
<category android:name="android.intent.category.BROWSABLE" />
Tiếp theo là thẻ data cũng rất quan trọng.Giúp định nghĩa dữ liệu phân biệt với các app khác.Dự vào data này để mở app
<data android:host="tienbm.xyz" android:pathPrefix="/down" android:scheme="http" />
*host:là tên domain hoặc có thể là biệt danh khác tùy chỉnh
*pathPrefix:là một tiền tố phía sau..Cái này cũng tùy chỉnh,để "" cũng được
*scheme:định danh cũng có thể tùy chỉnh nếu là từ website thì để http
Vậy là đã xong phần frontend
Backend
Tiếp theo để mở app từ một site chúng ta chỉ cần tạo đường dẫn theo định dạng như sau
intent: //host/prefix #Intent; package=; scheme=; end;
Với config app của mình ở trên thì sẽ như sau:
<a href="intent://tienbm.xyz/down/1#Intent;scheme=http;package=com.demodeeplinks;S.browser_fallback_url=http://tienbm.xyz;end"> Mở app </a>
*S.browser_fallback_url:Nếu không tìm thấy app sẽ dẫn tới trang chủ
Đọc dữ liệu từ link khi mở app sẽ thực hiện như sau
Mở MainActivity và thêm vào funtion onCreate
Intent intent = getIntent(); String action = intent.getAction(); Uri data = intent.getData(); String scheme = data.getScheme(); // "http" String host = data.getHost(); // "tienbm.xyz" List<String> params = data.getPathSegments(); String first = params.get(0); // "down" String hai = params.get(1); // "1 là tiền tố sau down"
Vậy là xong~ ;))