Deep Links for App Content
android
43
White

tienbm viết ngày 13/01/2016

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~ ;))

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

tienbm

5 bài viết.
3 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
2 1
Thân bài Để làm một widget với một listview bao gồm các thành phần: 1: AppWidgetProvider Được extend từ BroadcastReceiver được dùng đến như một ...
tienbm viết hơn 2 năm trước
2 1
White
2 1
Upload a File using Retrofit Có rất nhiều docs hướng dẫn nhưng mình thấy upload như này hiệu quả nhất nên note lại Mình sẽ đi vào ví dụ luôn cho ...
tienbm viết 1 năm trước
2 1
White
1 0
Thêm hành động sử dụng hành động trên bàn phím android http://javatechig.com/android/androidkeyboardhackshidekeyboardandcustomizeactions 07052016
tienbm viết 2 năm trước
1 0
Bài viết liên quan
White
8 4
Ở bài viết lần trước](), tôi đã nói về "hoàn cảnh" tại sao tôi lại cần sử dụng openssl trên android native, đồng thời cũng đã giới thiệu qua về các...
huydx viết hơn 3 năm trước
8 4
White
7 0
Gradle là gì? Sao lại xử dụng Gradle trong Android? Sử dụng Gradle như thế nào? Đó là một trong rất nhiều câu hỏi mà các Android developer mới làm ...
khoatd92 viết 1 năm trước
7 0
White
6 0
Để play video trên webview thì tất nhiên trình duyệt web của thiết bị android của bạn phải hổ trợ HTML5. Trong bài này tôi xin nói về cách play vid...
Anh Nguyễn viết 3 năm trước
6 0
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
5 bài viết.
3 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!