คุณเปิดแอปจากหน้าเว็บในอุปกรณ์ 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 เริ่มทำงานโดยไม่มีท่าทางสัมผัสของผู้ใช้