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