12/08/2018, 15:24

Hướng dẫn cài đặt Android App Link

Deep Linking với Android App Links Với sự ra đời của phiên bản Android M (6.0), Android có thêm một kỹ thuật mới để mở app trực tiếp từ đường link, gọi là App Links. Kỹ thuật này có tính năng giống như Universal Links ở iOS9, tức là nếu người dùng bấm vào một đường link HTTP/HTTPS thì app liên ...

Deep Linking với Android App Links

Với sự ra đời của phiên bản Android M (6.0), Android có thêm một kỹ thuật mới để mở app trực tiếp từ đường link, gọi là App Links. Kỹ thuật này có tính năng giống như Universal Links ở iOS9, tức là nếu người dùng bấm vào một đường link HTTP/HTTPS thì app liên quan đến đường link đó sẽ đc mở ra ngay lập tức ( nếu app đã đc cài). Logic của App Link như sau: - Mở app bằng intent nếu app đã được cài đặt. - Mở link bằng browser, web link nếu app chưa đc cài đặt. Android App Link còn là một cách đơn giản để biến đường link đã tồn tại ở website của bạn thành app link nữa. Ví dụ: http://imbd.com/title/12345. Nếu IMDB đã config website của họ để hỗ trợ app links, khi app IMDB đã được cài đặt ở điện thoại, nó sẽ được mở ra ngay lập tức nếu đường link trên được click vào. Nếu app chưa được cài đặt, đường link trên sẽ được bật bằng browser.

Điều kiện sử dụng Android App Links

  • Phải có một website đang hoạt động
  • Người dùng phải đang chạy Android 6.0+

Config Android App Links

Có 2 bước để config cho dịch vụ của bạn sử dụng đc app linking:

  1. Config file manifest để nhận đc intent.
  2. Đăng kí website của bạn là một App Link.

Bước 1: Thêm intent filter vào manifest

Ở bước này, bạn thông báo với Android rằng website nào sẽ mở app của bạn thay thì bật web bằng browser.

<activity ...>
    <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="http" android:host="yoursite.com" />
        <data android:scheme="https" android:host="yoursite.com" />
    </intent-filter>
</activity>

Bước 2: Config website của bạn cho App Links

Bạn phải tạo một file tên là assetlinks.json với định dạng như sau:

[{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
    "namespace": "android_app",
    "package_name": "io.branch.branchster",
    "sha256_cert_fingerprints": ["14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5"]
  }
}]

Bạn có thể sử dụng keytool để sinh ra fingerprints. Từ command line, cd đến thư mục java home, cd tiếp đến thư mục bin. Sau đó chạy lệnh sau:

$ keytool -list -v -keystore my-release-key.keystore

Cuối cùng, file assetlinks.json phải được host ở /.well-known/assetlinks.json. Content-type là application/json và status trả về là 200. Dưới đây là code ví dụ:

var assetlinks = fs.readFileSync(__dirname + '/static/assetlinks.json');
app.get('/.well-known/assetlinks.json', function(req, res, next) {
     res.set('Content-Type', 'application/json');
     res.status(200).send(assetlinks);
});

Bạn có thể generate file assetlinks.json hoặc test xem website của bạn đã được config đúng chưa bằng trang sau: https://developers.google.com/digital-asset-links/tools/generator

Xử lý App Link ở App

Để xử lý app link ở app, bạn chỉ cần lấy dữ liệu intent từ Activity mà đã được mở bằng click. Bạn có thể làm như sau:

Uri data = this.getIntent().getData();
if (data != null && data.isHierarchical()) {
    String uri = this.getIntent().getDataString();
    Log.i("MyApp", "Deep link clicked " + uri);
}

Bắt đầu từ bước này, bạn phải parse string để đọc được cái App Link mà người dùng click để mở app.

0