กิจกรรมบนเว็บที่เชื่อถือได้หลายต้นทาง

กิจกรรมในเว็บซึ่งเชื่อถือได้เป็นวิธีใหม่ในการผสานรวมเนื้อหาเว็บแอป เช่น PWA เข้ากับแอป Android โดยใช้โปรโตคอลที่อิงตามแท็บที่กำหนดเอง

ff-origin navigation

กิจกรรมบนเว็บที่เชื่อถือได้ต้องเปิดต้นทางเพื่อตรวจสอบโดยใช้ลิงก์ชิ้นงานดิจิทัล เพื่อแสดงเนื้อหาแบบเต็มหน้าจอ

เมื่อผู้ใช้ออกจากต้นทางที่ตรวจสอบแล้ว UI ของแท็บที่กำหนดเองจะแสดงขึ้น แถบ URL ในแท็บที่กำหนดเองจะแจ้งให้ผู้ใช้ทราบว่าตอนนี้กำลังไปยังส่วนต่างๆ ในโดเมนภายนอกแอปพลิเคชัน พร้อมทั้งมีปุ่ม X ให้ผู้ใช้กลับไปที่ต้นทางที่ตรวจสอบแล้วได้อย่างรวดเร็ว

แต่การสร้างประสบการณ์ที่ครอบคลุมหลายต้นทางก็เป็นเรื่องปกติสำหรับเว็บแอปเช่นกัน ตัวอย่างเช่น แอปพลิเคชันช็อปปิ้งที่มีประสบการณ์หลักที่ www.example.com ขณะที่โฟลว์การชำระเงินโฮสต์อยู่ที่ checkout.example.com

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

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

การตั้งค่าการตรวจสอบสำหรับต้นทางหลายรายการ

เช่นเดียวกับต้นทางหลัก การตรวจสอบจะดำเนินการผ่านลิงก์เนื้อหาดิจิทัล (Digital Asset Links) และแต่ละโดเมนที่จะได้รับการตรวจสอบต้องมีไฟล์ assetlinks.json เป็นของตัวเอง

ในตัวอย่างที่มี www.example.com และ checkout.example.com เราจะมี

  • https://www.example.com/.well-known/assetlinks.json
  • https://checkout.example.com/.well-known/assetlinks.json

เนื่องจากโดเมนแต่ละรายการเชื่อมต่อกับแอปพลิเคชัน Android เดียวกัน ไฟล์ assetlinks.json จึงมีลักษณะเหมือนกันทุกประการ

สมมติว่าชื่อแพ็กเกจสำหรับแอปพลิเคชัน Android คือ com.example.twa ไฟล์ assetlink.json ทั้ง 2 ไฟล์จะมีข้อมูลคล้ายกับตัวอย่างต่อไปนี้

[{   "relation": ["delegate_permission/common.handle_all_urls"],   "target": {   "namespace": "android_app",   "package_name": "com.example",    "sha256_cert_fingerprints": ["..."]} }] 

เพิ่มต้นทางหลายรายการลงในแอปพลิเคชัน Android

ในแอปพลิเคชัน Android คุณต้องอัปเดตการประกาศ asset_statements ให้รวมแหล่งที่มาทั้งหมดที่ต้องได้รับการตรวจสอบ ดังนี้

<string name="asset_statements"> [{     \"relation\": [\"delegate_permission/common.handle_all_urls\"],     \"target\": {         \"namespace\": \"web\",         \"site\": \"https://www.example.com\"     } }], [{     \"relation\": [\"delegate_permission/common.handle_all_urls\"],     \"target\": {         \"namespace\": \"web\",         \"site\": \"https://checkout.example.com\"     } }], </string> 

เพิ่มต้นทางเพิ่มเติมลงใน LauncherActivity

การใช้ LauncherActivity เริ่มต้น

LauncherActivity ซึ่งเป็นส่วนหนึ่งของไลบรารีการสนับสนุน android-browser-helper มีวิธีเพิ่มต้นทางหลายรายการให้ตรวจสอบโดยการกําหนดค่าโปรเจ็กต์ Android

ก่อนอื่น ให้เพิ่มองค์ประกอบ string-array ลงในไฟล์ res/values/strings.xml URL เพิ่มเติมแต่ละรายการที่จะตรวจสอบจะอยู่ในองค์ประกอบย่อย item ดังนี้

... <string-array name="additional_trusted_origins">     <item>https://www.google.com</item> </string-array> ... 

ถัดไป ให้เพิ่มแท็ก meta-data ใหม่ภายในองค์ประกอบกิจกรรมที่มีอยู่ซึ่งอ้างอิง LauncherActivity ภายใน AndroidManifest.xml

... <activity android:name="com.google.androidbrowserhelper.trusted.LauncherActivity"     android:label="@string/app_name">       <meta-data         android:name="android.support.customtabs.trusted.ADDITIONAL_TRUSTED_ORIGINS"         android:resource="@array/additional_trusted_origins" />       ... </activity> ... 

การใช้ LauncherActivity ที่กําหนดเอง

เมื่อใช้โค้ดที่กําหนดเองเพื่อเปิดใช้งานกิจกรรมบนเว็บที่เชื่อถือได้ คุณสามารถเพิ่มต้นทางเพิ่มเติมได้โดยเรียกใช้ setAdditionalTrustedOrigins เมื่อสร้าง Intent เพื่อเปิดใช้งานกิจกรรมบนเว็บที่เชื่อถือได้

public void launcherWithMultipleOrigins(View view) {   List<String> origins = Arrays.asList(       "https://checkout.example.com/"   );     TrustedWebActivityIntentBuilder builder = new TrustedWebActivityIntentBuilder(LAUNCH_URI)       .setAdditionalTrustedOrigins(origins);     new TwaLauncher(this).launch(builder, null, null); } 

บทสรุป

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

การแก้ปัญหา

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

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

นอกจากนี้ยังมีเครื่องมือลิงก์เนื้อหาของ Peter ที่ยอดเยี่ยม ซึ่งช่วยแก้ไขข้อบกพร่องของลิงก์เนื้อหาดิจิทัล (Digital Asset Links) ในแอปพลิเคชันที่ติดตั้งในอุปกรณ์