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

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

Tạo neo ý định và nhúng ý định đó 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 bạn linh hoạt lựa chọn cách thức và thời điểm khởi chạy ứng dụng, tức là bạn có thể truyền thông tin đến ứng dụng bằng Bổ sung ý định.

Cú pháp cơ bản cho URI dựa trên ý định như sau:

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 chưa giải quyết được một ý định hoặc ứng dụng bên ngoài không chạy, người dùng có thể được chuyển hướng đến URL dự phòng. Bạn có thể chỉ định URL dự phòng bằng Intent Extra:

S.browser_fallback_url=[encoded_full_url]

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

Chrome sẽ không khởi 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ói cách khác, không ứng dụng nào có thể xử lý ý định.
  • Một bộ tính giờ JavaScript đã cố mở một ứng dụng mà không có cử chỉ của người dùng.

Ví dụ

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

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

Để chạy ứng dụng máy quét mã vạch Zxing, hãy mã hoá href của bạn tại điểm 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 để xác định gói và máy chủ lưu trữ.

Khi URL dự phòng được chỉ định, 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>

Hiện tại, 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ó thao tác của người dùng hoặc các trường hợp khác mà chúng tôi không chạy được ứ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 trên Android bằng một Ý định chứa Thông tin bổ sung, thì bạn cũng có thể đưa các thông tin này vào.

Chỉ các 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 ứng dụng có thể mở an toàn qua Trình duyệt.

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

  • URI ý định được chuyển hướng từ một URL đã nhập;
  • URI ý định được khởi tạo mà không cần cử chỉ của người dùng.