ป้องกันแอปที่เปิดลิงก์ใน Chrome Custom Tabs (เช่นเปิดในเบราว์เซอร์เริ่มต้นโดยตรง)


20

ไม่นานมานี้ Google ได้เพิ่มคุณสมบัติใหม่ที่เรียกว่าChrome Custom Tabsตั้งแต่ Chrome 45 บน Android JellyBean หรือใหม่กว่า

แท็บที่กำหนดเองของ Chrome คืออะไร

นักพัฒนาแอพต้องเผชิญกับทางเลือกเมื่อผู้ใช้แตะ URL เพื่อเปิดเบราว์เซอร์หรือสร้างเบราว์เซอร์ในแอปของตนเองโดยใช้ WebViews

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

แท็บที่กำหนดเองของ Chrome ช่วยให้แอปควบคุมประสบการณ์การใช้เว็บของพวกเขาได้มากขึ้นและทำให้ช่วงการเปลี่ยนภาพระหว่างเนื้อหาเนทีฟและเนวิเกเตอร์เป็นไปอย่างราบรื่นมากขึ้นโดยไม่ต้องหันไปใช้ WebView

สิ่งนี้จะใช้ได้เมื่อใด

ตั้งแต่ Chrome 45 เป็นต้นไปแท็บที่กำหนดเองของ Chrome สามารถใช้งานได้กับผู้ใช้ Chrome ทุกคนในเวอร์ชัน Android ที่สนับสนุนของ Chrome (Jellybean เป็นต้นไป)

การสาธิตแท็บที่กำหนดเอง

Google ได้รวมคุณสมบัตินี้ไว้ในแอพบางตัว (เช่นGoogle+ , Google Search ) และตอนนี้แอปของบุคคลที่สามสามารถใช้งานได้ (เช่นTwitter , Stack Exchange )

ในขณะที่บางแอพพลิเคชั่นมีการตั้งค่าเพื่อเปิด / ปิด (เช่นGoogle Search ), บางแอพอาจไม่สามารถปิดการใช้งานได้ ฉันรู้ว่าฉันยังคงสามารถเปิดการเชื่อมโยงใน Chrome โดยแตะเมนูล้น (3 จุดด้านบนขวา) และเลือกเปิดใน Chrome อย่างไรก็ตามมันจะดีกว่าถ้ามันสามารถปิดการใช้งานในบางแอพ

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

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

คำตอบ:


8

หน้าความช่วยเหลือของแท็บที่กำหนดเองพูดว่า:

จะเกิดอะไรขึ้นหากผู้ใช้ไม่ได้ติดตั้ง Chrome เวอร์ชันล่าสุด

แท็บที่กำหนดเองใช้ACTION_VIEWIntent พร้อมคีย์พิเศษเพื่อปรับแต่ง UI ซึ่งหมายความว่าโดยค่าเริ่มต้นหน้าจะเปิดในเบราว์เซอร์ระบบหรือเบราว์เซอร์เริ่มต้นของผู้ใช้

หากผู้ใช้ติดตั้ง Chrome และเป็นเบราว์เซอร์เริ่มต้นผู้ใช้จะรับEXTRASและนำเสนอ UI ที่กำหนดเองโดยอัตโนมัติ นอกจากนี้ยังเป็นไปได้ที่เบราว์เซอร์อื่นจะใช้ความตั้งใจพิเศษเพื่อจัดเตรียมอินเทอร์เฟซแบบกำหนดเองที่คล้ายกัน

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

อัปเดต:นั่นหมายความว่าเป็นไปได้ที่จะเขียนแอป "ผู้จัดการ" ที่นำเสนอตัวเองเป็นเบราว์เซอร์ (จัดการACTION_VIEWความตั้งใจ) และเมื่อได้รับการตรวจสอบเจตนานี้ว่ามีแท็บที่กำหนดเองที่เกี่ยวข้องEXTRASหรือไม่ ตัวเลือกโดยใช้เจตนาที่ชัดเจน (โดยระบุชื่อแพคเกจแอปที่ต้องการอย่างชัดเจน)


ขอขอบคุณการเปลี่ยนเบราว์เซอร์เริ่มต้นใช้งานได้บ้างในบางแอพ (เช่นแอป Stack Exchange) แต่ไม่ได้ทำงานในส่วนที่เหลือ (เช่น Google News & Weather) ไม่แน่ใจว่าด้วยเหตุผล ... แอปตัวจัดการเป็นแนวคิดที่น่าสนใจ ลองทดลองใช้งานกับแอปอัตโนมัติหรือไม่
Andrew T.

1
มันเป็นเพราะข่าวและสภาพอากาศระบุองค์ประกอบอย่างชัดเจนในเจตนาที่ (พยายาม V START u0 {act=android.intent.action.VIEW dat=http://news.google.com/... flg=0x14002000 cmp=com.android.chrome/org.chromium.chrome.browser.ChromeTabbedActivity (has extras)} from uid 10041 on display 02.3.3.) สไตล์ที่ไม่ดี แต่ไม่มีอะไรที่คุณสามารถทำได้เกี่ยวกับสิ่งนี้: (
มิคาอิลนากาโนฟ

2

ฉันใช้ Android 7.1.1 เปิดแอปพลิเคชันของ Google หรือทำการค้นหาคลิกแฮมเบอร์เกอร์ที่ด้านบนซ้ายและไปที่การตั้งค่า

ไปที่บัญชีและความเป็นส่วนตัว

ปิด 'เปิดหน้าเว็บในแอป'

ดูเหมือนว่าจะปิดแท็บที่กำหนดเองของ Chrome


3
สิ่งนี้จะปิดใช้งานแท็บที่กำหนดเองในแอปพลิเคชันการค้นหาเท่านั้น (อาจเป็นแอปอื่น ๆ ของ Google) แต่ไม่ใช่ทั้งระบบ
Keith Twombley
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.