07/09/2018, 15:38

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

0