เปิดใช้ Handler API

ควบคุมวิธีเปิดแอปของคุณ

Launcher Handler API ช่วยให้คุณควบคุมวิธีเปิดแอปของคุณได้ เช่น ใช้แอปที่มีอยู่หรือหน้าต่างใหม่ และกำหนดว่าจะให้หน้าต่างที่เลือกไว้ไปยัง URL การเปิดตัวไหม การดำเนินการนี้จะจัดคิวออบเจ็กต์ LaunchParams ใน window.launchQueue ของหน้าที่เปิดขึ้นมาด้วย เช่นเดียวกับ File Handing API

สถานะปัจจุบัน

ขั้นตอน สถานะ
1. สร้างคำอธิบาย เสร็จสมบูรณ์
2. สร้างข้อกำหนดคร่าวๆ เบื้องต้น เสร็จสมบูรณ์
3. รวบรวมความคิดเห็นและทำซ้ำเกี่ยวกับการออกแบบ เสร็จสมบูรณ์
4. ช่วงทดลองใช้จากต้นทาง เสร็จสมบูรณ์
5. เปิดตัว เสร็จสมบูรณ์

การใช้ Launch Handler API

การสนับสนุนเบราว์เซอร์

เครื่องจัดการการเปิดตัวพร้อมใช้งานใน ChromeOS เท่านั้น

การรองรับเบราว์เซอร์

  • 110
  • 110
  • x
  • x

แหล่งที่มา

อินเทอร์เฟซ

Launch Handler API จะกำหนดอินเทอร์เฟซใหม่ 2 แบบ

LaunchParams : ออบเจ็กต์ที่มี targetURL ซึ่งผู้บริโภคจะเป็นผู้จัดการ LaunchQueue : คิวจะเปิดขึ้นจนกว่าผู้บริโภคที่ระบุจะจัดการคิว

สมาชิกไฟล์ Manifest ของ launch_handler

หากต้องการระบุลักษณะการเปิดใช้งานของแอปอย่างชัดเจน ให้เพิ่มสมาชิกไฟล์ Manifest launch_handler ลงในไฟล์ Manifest มีช่องย่อย 1 ช่องชื่อ client_mode ซึ่งช่วยให้คุณควบคุมว่าควรเปิดตัวลูกค้าใหม่หรือลูกค้าที่มีอยู่และควรไปยังส่วนต่างๆ ของลูกค้ารายนี้หรือไม่ ตัวอย่างด้านล่างแสดงไฟล์ที่มีค่าเฉพาะตัวซึ่งจะกำหนดเส้นทางการเปิดตัวทั้งหมดไปยังไคลเอ็นต์ใหม่เสมอ

{
  "launch_handler": {
    "client_mode": "navigate-new"
  }
}

หากไม่ระบุ launch_handler จะมีค่าเริ่มต้นเป็น {"client_mode": "auto"} ค่าที่อนุญาตสำหรับช่องย่อยมีดังนี้

  • client_mode:
    • navigate-new: ระบบจะสร้างบริบทการท่องเว็บใหม่ในหน้าต่างเว็บแอปเพื่อโหลด URL เป้าหมายของการเปิดตัว
    • navigate-existing: ระบบจะนำการโต้ตอบล่าสุดกับบริบทการท่องเว็บในหน้าต่างเว็บแอป ไปยัง URL เป้าหมายของการเปิดตัว
    • focus-existing: ระบบจะเลือกการโต้ตอบล่าสุดกับบริบทการท่องเว็บในหน้าต่างเว็บแอป เพื่อจัดการการเปิดตัว ออบเจ็กต์ LaunchParams ใหม่ที่ตั้งค่า targetURL เป็น URL เปิดใช้งานจะอยู่ในคิวใน window.launchQueue ของเอกสาร
    • auto: ลักษณะการทำงานนี้ขึ้นอยู่กับ User Agent ที่จะตัดสินใจว่าวิธีใดเหมาะกับแพลตฟอร์มที่สุด เช่น อุปกรณ์เคลื่อนที่จะรองรับไคลเอ็นต์เดียวเท่านั้น และจะใช้ existing-client ส่วนอุปกรณ์เดสก์ท็อปรองรับหลายหน้าต่าง และจะใช้ navigate-new เพื่อป้องกันไม่ให้ข้อมูลสูญหาย

พร็อพเพอร์ตี้ client_mode ยังยอมรับรายการ (อาร์เรย์) ของค่า ซึ่งจะใช้ค่าที่ถูกต้องค่าแรก ทั้งนี้เพื่ออนุญาตให้เพิ่มค่าใหม่ลงในข้อกำหนดโดยไม่รบกวนความเข้ากันได้แบบย้อนหลังกับการติดตั้งใช้งานที่มีอยู่

เช่น หากเพิ่มค่าสมมติ "focus-matching-url" เว็บไซต์จะระบุ "client_mode": ["focus-matching-url", "navigate-existing"] เพื่อควบคุมลักษณะการทำงานของเบราว์เซอร์รุ่นเก่าที่ไม่รองรับ "focus-matching-url" ต่อไป

กำลังใช้ window.launchQueue

ในโค้ดต่อไปนี้ ฟังก์ชัน extractSongID() จะดึงข้อมูล songID จาก URL ที่ส่งผ่านเมื่อเปิดใช้งาน ใช้เพื่อเล่นเพลงใน PWA โปรแกรมเล่นเพลง

if ('launchQueue' in window) {
  launchQueue.setConsumer((launchParams) => {
    if (launchParams.targetURL) {
      const songID = extractSongId(launchParams.targetURL);
      if (songID) {
        playSong(songID);
      }
    }
  });
}

ข้อมูลประชากร

ดูการสาธิตการใช้งาน Launch Handler API ได้ในการสาธิต Launcher Handler ของ PWA อย่าลืมตรวจสอบซอร์สโค้ดของแอปพลิเคชันเพื่อดูว่าแอปใช้ Launcher Handler API อย่างไร

  1. ติดตั้งแอป Musicr 2.0 บนอุปกรณ์ ChromeOS
  2. ส่งลิงก์ให้ตัวเองในแอปพลิเคชันแชทของแบบฟอร์ม https://launch-handler.glitch.me?track=https://example.com/music.mp3 (คุณปรับแต่ง https://example.com/music.mp3 ให้กับ URL ใดก็ตามที่ชี้ไปยังไฟล์เสียงได้ เช่น https://launch-handler.glitch.me?track=https://cdn.glitch.me/3e952c9c-4d6d-4de4-9873-23cf976b422e%2Ffile_example_MP3_700KB.mp3?v=1638795977190)
  3. คลิกลิงก์ในแอปแชทและดูว่า Musicr 2.0 เปิดและเล่นแทร็กนั้นอย่างไร
  4. คลิกลิงก์ในแอปแชทอีกครั้งและสังเกตเห็นว่าคุณจะไม่ได้รับอินสแตนซ์ที่สองของ Musicr 2.0

ความคิดเห็น

ทีม Chromium ต้องการทราบประสบการณ์ของคุณเกี่ยวกับ Launch Handler API

บอกเราเกี่ยวกับการออกแบบ API

มีบางอย่างเกี่ยวกับ API ที่ทำงานไม่ได้ตามที่คาดหวังหรือไม่ หรือยังไม่มีวิธีการหรือคุณสมบัติ ที่คุณต้องใช้เพื่อนำไอเดียของคุณไปปฏิบัติ หากมีข้อสงสัยหรือความคิดเห็น เกี่ยวกับรูปแบบการรักษาความปลอดภัย แจ้งปัญหาเกี่ยวกับที่เก็บ GitHub ที่เกี่ยวข้อง หรือเพิ่มความคิดเห็นของคุณเกี่ยวกับปัญหาที่มีอยู่

รายงานปัญหาเกี่ยวกับการติดตั้งใช้งาน

คุณพบข้อบกพร่องในการใช้งาน Chromium ไหม หรือการติดตั้งใช้งานแตกต่างจากข้อกําหนดหรือไม่ รายงานข้อบกพร่องที่ new.crbug.com ตรวจสอบว่าได้ใส่รายละเอียดให้มากที่สุดเท่าที่จะเป็นไปได้ วิธีการง่ายๆ ในการสร้างอีกครั้ง และป้อน Blink>AppManifest ในช่องคอมโพเนนต์ ภาพ Glitch เหมาะสำหรับการแชร์ซ้ำที่ง่ายและรวดเร็ว

แสดงการรองรับ API

คุณวางแผนที่จะใช้ Launch Handler API ไหม การสนับสนุนแบบสาธารณะของคุณช่วยให้ทีม Chromium สามารถจัดลำดับความสำคัญของฟีเจอร์ต่างๆ และแสดงให้ผู้ให้บริการเบราว์เซอร์รายอื่นเห็นว่าการสนับสนุนฟีเจอร์เหล่านี้นั้นสำคัญเพียงใด

ส่งทวีตไปที่ @ChromiumDev โดยใช้แฮชแท็ก #LaunchHandler และ แจ้งให้เราทราบว่าคุณใช้งานที่ไหนและอย่างไร

ลิงก์ที่มีประโยชน์