Android Intent ที่มี Chrome

คุณเปิดแอปได้โดยตรงจากหน้าเว็บในอุปกรณ์ Android ด้วย Android Intent คุณสามารถใช้ท่าทางสัมผัสของผู้ใช้เพื่อเปิดแอปด้วยรูปแบบที่กำหนดเองหรือใช้ไวยากรณ์ intent:

สร้าง Anchor ของ Intent และฝังไว้ในหน้าเว็บเพื่อให้ผู้ใช้เลือกเปิดแอปได้ ซึ่งจะช่วยให้มีความยืดหยุ่นสำหรับวิธีและเวลาที่จะเปิดแอป ซึ่งหมายความว่าคุณจะส่งข้อมูลไปยังแอปได้ด้วย Intent Extras

ไวยากรณ์พื้นฐานสำหรับ URI ที่อิงตาม Intent มีดังนี้

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

โปรดดูซอร์สโค้ด Android สำหรับรายละเอียดการแยกวิเคราะห์

เมื่อ Intent ยังไม่ได้รับการแก้ไขหรือแอปพลิเคชันภายนอกไม่เปิดขึ้น ระบบจะเปลี่ยนเส้นทางผู้ใช้ไปยัง URL สำรองได้ คุณสามารถระบุ URL สำรอง ที่มี Intent พิเศษ ดังนี้

S.browser_fallback_url=[encoded_full_url]

ใช้ S.<name> กำหนด Intent Extras ส่วนพิเศษนี้ ใช้งานย้อนหลังได้ Chrome จะนำ browser_fallback_url ออกเพื่อให้แอปเป้าหมายไม่เห็นค่านี้

Chrome จะไม่เปิดแอปพลิเคชันภายนอกในกรณีต่อไปนี้

  • ไม่สามารถแก้ไขเจตนาได้ กล่าวอีกนัยหนึ่งคือ ไม่มีแอปใดจัดการ Intent ได้
  • ตัวจับเวลา JavaScript พยายามเปิดแอปพลิเคชันโดยไม่ใช้ท่าทางสัมผัสของผู้ใช้

ตัวอย่าง

นี่คือความตั้งใจที่จะเปิดแอปสแกนบาร์โค้ด Zxing:

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

หากต้องการเปิดแอปสแกนบาร์โค้ด Zxing ให้เข้ารหัส href บน Anchor ดังนี้

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

ดูไฟล์ Manifest ของ Android Zxing ซึ่งกำหนดแพ็กเกจและโฮสต์

เมื่อมีการระบุ URL ทางเลือก URL แบบเต็มจะมีลักษณะดังต่อไปนี้

   <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>

ตอนนี้ URL จะส่งผู้ใช้ไปยัง zxing.org หากไม่พบแอป ลิงก์จะทริกเกอร์โดย JavaScript โดยไม่มีท่าทางสัมผัสของผู้ใช้ หรือในกรณีอื่นๆ ที่เราจะไม่เปิดแอปพลิเคชันภายนอก

ข้อควรพิจารณา

หากคุณเรียกใช้กิจกรรม Android ด้วย Intent ที่มี Extras คุณสามารถใส่รายละเอียดเหล่านี้ได้ด้วย

คุณจะเรียกใช้เฉพาะกิจกรรมที่มีตัวกรองหมวดหมู่ android.intent.category.BROWSABLE ได้เท่านั้น เนื่องจากเป็นตัวระบุว่าสามารถเปิดแอปพลิเคชันจากเบราว์เซอร์ได้อย่างปลอดภัย

Chrome จะไม่เปิดแอปภายนอกสำหรับ URI ของ Intent ที่ระบุในกรณีต่อไปนี้

  • URI ของ Intent เปลี่ยนเส้นทางจาก URL ที่พิมพ์ลงไป
  • URI ของ Intent จะเริ่มต้นโดยไม่ใช้ท่าทางสัมผัสของผู้ใช้