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

กิจกรรมในเว็บซึ่งเชื่อถือได้เป็นวิธีใหม่ในการผสานรวมเนื้อหาเว็บแอป เช่น 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) ในแอปพลิเคชันที่ติดตั้งในอุปกรณ์