Ý định của Android với Chrome

Bạn có thể chạy ứng dụng ngay từ một trang web trên thiết bị Android bằng Ý định Android. Bạn có thể triển khai một cử chỉ của người dùng để chạy ứng dụng bằng một giao thức tuỳ chỉnh hoặc sử dụng cú pháp intent:.

Tạo một neo ý định và nhúng neo đó vào một trang để người dùng có thể chọn chạy ứng dụng. Điều này cho phép linh hoạt về cách thức và thời điểm chạy ứng dụng, nghĩa là bạn có thể truyền thông tin đến ứng dụng bằng Ý định bổ sung.

Dưới đây là cú pháp cơ bản cho URI dựa trên ý định:

intent:  
   HOST/URI-path // Optional host  
   #Intent;  
      package=\[string\];  
      action=\[string\];  
      category=\[string\];  
      component=\[string\];  
      scheme=\[string\];  
   end;

Tham khảo mã nguồn Android để biết thông tin chi tiết về việc phân tích cú pháp.

Khi một ý định không được phân giải hoặc một ứng dụng bên ngoài không khởi chạy, người dùng có thể được chuyển hướng đến URL dự phòng. Bạn có thể chỉ định một URL dự phòng bằng một Ý định bổ sung:

S.browser_fallback_url=[encoded_full_url]

Sử dụng S.<name> để xác định các tính năng bổ sung ý định. Phần bổ sung đặc biệt này có khả năng tương thích ngược. Chrome sẽ xoá browser_fallback_url để ứng dụng đích không thấy giá trị này.

Chrome sẽ không chạy ứng dụng bên ngoài trong các trường hợp sau:

  • Không thể giải quyết ý định này. Nói cách khác, không có ứng dụng nào có thể xử lý ý định đó.
  • Bộ hẹn giờ JavaScript đã cố gắng mở một ứng dụng mà không có cử chỉ của người dùng.

Ví dụ

Dưới đây là một ý định chạy ứng dụng quét mã vạch Zxing:

intent:  
   //scan/  
   #Intent;  
      package=com.google.zxing.client.android;  
      scheme=zxing;  
   end;

Để chạy ứng dụng quét mã vạch Zxing, hãy mã hoá href trên neo:

  <a href="intent://scan/#Intent;scheme=zxing;package=com.google.zxing.client.android;end">
    Take a QR code
  </a>

Xem Tệp kê khai Android Zxing, tệp này xác định gói và máy chủ lưu trữ.

Khi bạn chỉ định một URL dự phòng, URL đầy đủ sẽ có dạng như sau:

   <a href="intent://scan/#Intent;scheme=zxing;package=com.google.zxing.client.android;S.browser_fallback_url=http%3A%2F%2Fzxing.org;end">
    Take a QR code
  </a>

Giờ đây, URL sẽ đưa người dùng đến zxing.org nếu không tìm thấy ứng dụng, đường liên kết được kích hoạt bằng JavaScript mà không cần cử chỉ của người dùng hoặc các trường hợp khác mà chúng ta không chạy ứng dụng bên ngoài.

Những yếu tố nên cân nhắc

Nếu gọi một Hoạt động Android bằng một Ý định chứa Thông tin bổ sung, bạn cũng có thể thêm các thông tin chi tiết này.

Chỉ những hoạt động có bộ lọc danh mục android.intent.category.BROWSABLE mới có thể được gọi bằng phương thức này, vì phương thức này cho biết rằng ứng dụng có thể mở một cách an toàn từ Trình duyệt.

Chrome sẽ không chạy một ứng dụng bên ngoài cho một URI Ý định nhất định nếu:

  • URI Ý định được chuyển hướng từ một URL đã nhập;
  • URI ý định được bắt đầu mà không cần thao tác của người dùng.