ทำให้ติดตั้งได้

ข้อบกพร่องนี้ประกอบด้วย ไฟล์ Manifest ของเว็บซึ่งมีช่องที่ต้องกรอกเพื่อให้เว็บแอปติดตั้งได้

และมีปุ่มติดตั้งที่ซ่อนอยู่โดยค่าเริ่มต้นด้วย

เมื่อเบราว์เซอร์เรียกเหตุการณ์ beforeinstallprompt แสดงว่าสามารถติดตั้งเว็บแอปและแสดงปุ่มติดตั้งต่อผู้ใช้ได้ ระบบจะเรียกเหตุการณ์ beforeinstallprompt เมื่อแอปเป็นไปตามเกณฑ์ความสามารถในการติดตั้ง

การบันทึกเหตุการณ์ช่วยให้นักพัฒนาแอปปรับแต่งการติดตั้งและแจ้งให้ผู้ใช้ติดตั้งได้เมื่อคิดว่าเป็นช่วงเวลาที่เหมาะสม

  1. คลิกรีมิกซ์เพื่อแก้ไขเพื่อให้โปรเจ็กต์แก้ไขได้
  2. เพิ่มตัวแฮนเดิลเหตุการณ์ beforeinstallprompt ไปยังออบเจ็กต์ window
  3. บันทึก event เป็นตัวแปรส่วนกลาง เนื่องจากเราจะต้องใช้ในภายหลังเพื่อแสดงพรอมต์
  4. เลิกซ่อนปุ่มติดตั้ง

รหัส:

window.addEventListener('beforeinstallprompt', (event) => {
 
// Prevent the mini-infobar from appearing on mobile.
  event
.preventDefault();
  console
.log('👍', 'beforeinstallprompt', event);
 
// Stash the event so it can be triggered later.
  window
.deferredPrompt = event;
 
// Remove the 'hidden' class from the install button container.
  divInstall
.classList.toggle('hidden', false);
});

จัดการการคลิกปุ่มติดตั้ง

หากต้องการแสดงข้อความแจ้งให้ติดตั้ง ให้เรียกใช้ prompt() ในเหตุการณ์ beforeinstallprompt ที่บันทึกไว้ การเรียกใช้ prompt() เสร็จสิ้นในเครื่องจัดการการคลิกปุ่มติดตั้งเนื่องจากต้องเรียกใช้ prompt() จากท่าทางสัมผัสของผู้ใช้

  1. เพิ่มตัวแฮนเดิลเหตุการณ์การคลิกสําหรับปุ่มติดตั้ง
  2. โทรหา prompt() ในเหตุการณ์ beforeinstallprompt ที่บันทึกไว้
  3. บันทึกผลลัพธ์ของพรอมต์
  4. ตั้งค่าเหตุการณ์ beforeinstallprompt ที่บันทึกไว้เป็นค่า Null
  5. ซ่อนปุ่มติดตั้ง

รหัส:

butInstall.addEventListener('click', async () => {
  console
.log('👍', 'butInstall-clicked');
 
const promptEvent = window.deferredPrompt;
 
if (!promptEvent) {
   
// The deferred prompt isn't available.
   
return;
 
}
 
// Show the install prompt.
  promptEvent
.prompt();
 
// Log the result
 
const result = await promptEvent.userChoice;
  console
.log('👍', 'userChoice', result);
 
// Reset the deferred prompt variable, since
 
// prompt() can only be called once.
  window
.deferredPrompt = null;
 
// Hide the install button.
  divInstall
.classList.toggle('hidden', true);
});

ติดตามเหตุการณ์การติดตั้ง

การติดตั้งเว็บแอปผ่านปุ่มติดตั้งเป็นเพียงวิธีเดียวที่ผู้ใช้จะติดตั้งได้ นอกจากนี้ ยังใช้เมนูของ Chrome, แถบข้อมูลขนาดเล็ก และไอคอนในแถบอเนกประสงค์ได้ด้วย คุณสามารถติดตามการติดตั้งด้วยวิธีเหล่านี้ทั้งหมดได้โดยฟังเหตุการณ์ appinstalled

  1. เพิ่มเครื่องจัดการเหตุการณ์ appinstalled ลงในออบเจ็กต์ window
  2. บันทึกเหตุการณ์การติดตั้งไปยังข้อมูลวิเคราะห์หรือกลไกอื่นๆ

รหัส:

window.addEventListener('appinstalled', (event) => {
  console
.log('👍', 'appinstalled', event);
 
// Clear the deferredPrompt so it can be garbage collected
  window
.deferredPrompt = null;
});

อ่านเพิ่มเติม

ยินดีด้วย ตอนนี้คุณติดตั้งแอปได้แล้ว

สิ่งที่คุณทำได้เพิ่มเติมมีดังนี้