เลย์ออฟแผ่นดิน

ปีเตอร์ คอนน์
Peter Conn

กิจกรรมในเว็บที่เชื่อถือได้นั้นอยู่ในจำนวนที่มากพอสมควร และการหาว่าเกี่ยวข้องทั้งหมดอย่างไรและควรใช้อย่างไรอาจเป็นเรื่องยาก เราหวังว่าบทความนี้จะช่วยแก้ปัญหานี้ได้

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

  • Bubblewrap: เครื่องมือ NodeJS ที่ช่วยให้นักพัฒนาซอฟต์แวร์สร้าง Android APK ที่รวม PWA ที่มีอยู่ได้ แอปพลิเคชันที่สร้างขึ้นขับเคลื่อนโดยกิจกรรมบนเว็บที่เชื่อถือได้ แต่มีความโปร่งใสต่อนักพัฒนาซอฟต์แวร์ ไม่จำเป็นต้องมีประสบการณ์ในการพัฒนา Android ดูเอกสารประกอบของ Bubblewrap เพื่อเริ่มต้นใช้งาน
  • android-browser-helper: ไลบรารี Android ที่รวมโปรโตคอลกิจกรรมบนเว็บที่เชื่อถือได้ แนะนำสำหรับนักพัฒนาซอฟต์แวร์ที่คุ้นเคยกับการพัฒนาของ Android และต้องการใช้กิจกรรมบนเว็บที่เชื่อถือได้เป็นหนึ่งในกิจกรรมในแอป Android ของตน หรือทำการปรับแต่งที่ Bubblewrap ไม่รองรับ หากต้องการเริ่มต้นใช้งาน android-browser-helper ให้ดูเอกสารประกอบและการสาธิตของเรา

ส่วนถัดไปจะแสดงสรุปสั้นๆ ของทุกโครงการที่เกี่ยวข้อง สุดท้าย (สำหรับคนที่อยากรู้อยากเห็นจริงๆ) จะมีส่วนประวัติที่แสดงให้คุณรู้ว่าเรามาที่นี่ได้อย่างไรและมีแผนที่จะไปที่ไหนในอนาคตอันใกล้

ภาพรวมของไลบรารี

ต่อไปนี้เป็นสรุปสั้นๆ ประโยคเดียวสำหรับไลบรารีแต่ละไลบรารีที่คุณอาจได้ใช้:

  • androidx.browser ซึ่งเป็นไลบรารี Android สำหรับการโต้ตอบกับเบราว์เซอร์ที่ติดตั้งในอุปกรณ์ของผู้ใช้
  • โปรแกรมช่วยเบราว์เซอร์ Android ซึ่งเป็นไลบรารีที่สร้างขึ้นบน androidx.browser สำหรับไคลเอ็นต์กิจกรรมบนเว็บที่เชื่อถือได้ เพื่อมอบวิธีการอำนวยความสะดวกและค่าเริ่มต้นที่เหมาะสม
  • Bubblewrap เป็นเครื่องมือในการสร้างกิจกรรมบนเว็บที่เชื่อถือได้จาก PWA แบบไม่ต้องแตะโค้ด Java

นอกจากนี้ ไลบรารี/เครื่องมือแต่ละรายการเหล่านี้จะแทนที่ไลบรารี/เครื่องมือที่เก่ากว่า

ประวัติ

ไลบรารีการสนับสนุนของ Android

Android Support Library ขยายแพลตฟอร์ม Android ด้วย API และฟีเจอร์ความเข้ากันได้ใหม่ ซึ่งแบ่งออกเป็นแพ็กเกจหลายแพ็กเกจ โดยมีไลบรารีการสนับสนุนแท็บที่กำหนดเองซึ่งมีฟังก์ชันสำหรับการโต้ตอบกับเบราว์เซอร์ในระบบของผู้ใช้ การพัฒนาไลบรารีการสนับสนุนแท็บที่กำหนดเองนั้นทำในที่เก็บ custom-tabs-client เป็นหลัก โดยการเปลี่ยนแปลงจะอัปสตรีมกลับไปยังไลบรารีการสนับสนุนของ Android

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

เนื่องจากกิจกรรมบนเว็บที่เชื่อถือได้สร้างขึ้นจากแท็บที่กำหนดเอง กิจกรรมนี้จึงเริ่มใช้งานในไลบรารี custom-tabs-client นี้ กิจกรรมในเว็บที่เชื่อถือได้จะนำแถบด้านบน "แท็บที่กำหนดเอง" ออกเมื่อผู้ใช้เรียกดูเว็บไซต์ที่นักพัฒนาแอปเป็นเจ้าของ ซึ่งเป็นประตูสู่การผสานรวมเว็บไซต์อย่างราบรื่นภายในแอป Android และสามารถใช้สร้างแอปที่มีฟังก์ชันการทำงานทั้งหมดจากเว็บ

AndroidX

Android Support Library ได้รีแบรนด์เป็น AndroidX ในภายหลัง ซึ่งเป็นส่วนหนึ่งของความพยายามครั้งใหญ่ในการปรับปรุงประสบการณ์การใช้งานของนักพัฒนาซอฟต์แวร์ที่มีชื่อว่า JetPack ดังนั้นแท็บที่กำหนดเองและกิจกรรมบนเว็บที่เชื่อถือได้จะต้องย้ายจากไลบรารีการสนับสนุนแท็บที่กำหนดเองไปยัง androidx.browser ใหม่

โค้ดบางส่วนที่เราเขียนในไคลเอ็นต์แท็บที่กำหนดเองเหมาะสำหรับไลบรารีของคลาสตัวช่วยกิจกรรมบนเว็บที่เชื่อถือได้ แต่ไม่เหมาะสำหรับ Android API โค้ดในการจัดการกับการตรวจหา Chrome เวอร์ชันที่ล้าสมัยและแจ้งให้ผู้ใช้อัปเดตหรือตัดสินใจเกี่ยวกับวิธีจัดเก็บข้อมูลจะไม่สามารถย้ายไปยัง AndroidX ได้ เราจึงสร้างไลบรารีสำรองที่มีส่วนต่างๆ เหล่านี้ของ custom-tabs-client ที่ไม่สามารถเข้าไปที่ androidx.browser ได้ จึงเกิดโปรแกรมช่วยเหลือเบราว์เซอร์ Android ขึ้นมา

โปรแกรมความช่วยเหลือสำหรับเบราว์เซอร์ Android สร้างขึ้นให้มีโค้ดที่เจาะจงสำหรับเบราว์เซอร์โดยเฉพาะ (ไม่ใช่ Chrome เท่านั้น เราเปิดให้เขียนโค้ดสำหรับเบราว์เซอร์อื่นๆ โดยเฉพาะ) และสามารถทำการตัดสินใจอย่างเป็นรูปธรรมที่ไลบรารีไม่ควร เราใช้โอกาสนี้แยกบทบาทของไลบรารีทั้งสองนี้ออกจากกัน:

  • androidx.browser ประกอบด้วยองค์ประกอบขั้นพื้นฐานสำหรับการโต้ตอบกับเบราว์เซอร์ใน ระบบของผู้ใช้
  • โปรแกรมความช่วยเหลือสำหรับเบราว์เซอร์ Android มีวิธีใช้งานที่สะดวกและนำไปใช้ได้อย่างสมเหตุสมผล

เริ่มต้นลงทุน

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

โปรเจ็กต์แรก (และเก่าที่สุด) คือ svgomg-twa ซึ่งเป็นโปรเจ็กต์ Android ที่โฮสต์บน GitHub ซึ่งเปิดตัวกิจกรรมบนเว็บและแอปที่เชื่อถือได้ แต่เดิมได้รับการออกแบบให้เป็นโครงการสาธิต ซึ่งพัฒนาไปเป็นเทมเพลตมากขึ้น ผู้ใช้สามารถโคลนที่เก็บดังกล่าวและแก้ไขไฟล์ build.gradle ให้ชี้ไปยังเว็บไซต์ของตน สร้าง และสร้างกิจกรรมบนเว็บที่เชื่อถือได้โดยไม่ต้องแตะโค้ด Java (การยืนยันลิงก์เนื้อหาดิจิทัล (Digital Asset Links) ต้องทำมากกว่านี้ โปรดอ่านข้อมูลเพิ่มเติมที่นี่)

svgomg-twa เริ่มจากการขึ้นอยู่กับไคลเอ็นต์แท็บที่กำหนดเอง แล้วเปลี่ยนไปเป็นโปรแกรมช่วยเบราว์เซอร์ของ Android (ซึ่งก็คือ androidx.browser แทน)

เครื่องมือใหม่ล่าสุดที่ล้ำสมัยที่สุดคือ Bubblewrap ซึ่งเป็นเครื่องมือ Node.js ที่จะนำไฟล์ Manifest ของเว็บแอปและสร้างกิจกรรมบนเว็บและเว็บที่เชื่อถือได้ให้คุณ วิธีนี้เป็นวิธีที่ง่ายที่สุดในการสร้างกิจกรรมบนเว็บและเว็บที่เชื่อถือได้จาก PWA ที่มีอยู่ และไม่จำเป็นต้องมีความรู้ด้านการพัฒนา Android

อนาคต

เราจะเลิกใช้งาน svgomg-twa ด้วยเหตุผล 2 ประการดังนี้

  • โดย Bubblewrap จะสร้าง svgomg-twa แบบกรอกข้อมูลให้กับนักพัฒนาซอฟต์แวร์ โดยจะทำแบบอินเทอร์แอกทีฟและสามารถนำการกำหนดค่าจากไฟล์ Manifest ของเว็บแอป (ซึ่ง PWA น่าจะมีอยู่แล้ว)
  • หากนักพัฒนาซอฟต์แวร์ต้องการข้อมูลอ้างอิงเกี่ยวกับวิธีเริ่มโปรเจ็กต์กิจกรรมบนเว็บที่เชื่อถือได้ของตนเองจาก Scratch โปรดดูที่ไดเรกทอรีการสาธิตตัวช่วยเบราว์เซอร์ของ Android

นักพัฒนาซอฟต์แวร์รายใหม่ควรใช้ Bubblewrap เพื่อสร้างโปรเจ็กต์แทน หากใช้ svgomg-twa อยู่แล้วและได้ทำการแก้ไขหนักๆ ไป คุณอาจดำเนินการต่อได้ แต่จะไม่ได้รับการอัปเดต

เราวางแผนที่จะทำให้ Bubblewrap ทำงานได้อย่างดีที่สุด ดังนั้นหากไม่มีฟีเจอร์ที่เห็นได้ชัดเจนหรือคุณพบข้อบกพร่อง โปรดสร้างปัญหา