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 Extra ได้ดังนี้

S.browser_fallback_url=[encoded_full_url]

ใช้ S.<name> เพื่อกำหนดข้อมูลเพิ่มเติมของ Intent ฟีเจอร์เสริมนี้เข้ากันได้กับเวอร์ชันเก่า Chrome จะนํา browser_fallback_url ออกเพื่อให้แอปเป้าหมายไม่เห็นค่านี้

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

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

ตัวอย่าง

นี่คือ Intent ที่เปิดแอปสแกนบาร์โค้ด Zxing

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

หากต้องการเปิดแอปสแกนบาร์โค้ด Zxing ให้เข้ารหัส href บนอุปกรณ์ยึดตามขั้นตอนต่อไปนี้

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

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

เมื่อระบุ 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 เริ่มทำงานโดยไม่มีท่าทางสัมผัสของผู้ใช้