กิจกรรมในเว็บซึ่งเชื่อถือได้เป็นวิธีใหม่ในการผสานรวมเนื้อหาเว็บแอป เช่น PWA เข้ากับแอป Android โดยใช้โปรโตคอลที่อิงตามแท็บที่กำหนดเอง
กิจกรรมบนเว็บที่เชื่อถือได้ต้องเปิดต้นทางเพื่อตรวจสอบโดยใช้ลิงก์ชิ้นงานดิจิทัล เพื่อแสดงเนื้อหาแบบเต็มหน้าจอ
เมื่อผู้ใช้ออกจากต้นทางที่ตรวจสอบแล้ว UI ของแท็บที่กำหนดเองจะแสดงขึ้น แถบ URL ในแท็บที่กำหนดเองจะแจ้งให้ผู้ใช้ทราบว่าตอนนี้กำลังไปยังส่วนต่างๆ ในโดเมนภายนอกแอปพลิเคชัน พร้อมกับมีปุ่ม X ให้ผู้ใช้กลับไปที่ต้นทางที่ตรวจสอบแล้วได้อย่างรวดเร็ว
แต่การสร้างประสบการณ์ที่ครอบคลุมหลายต้นทางก็เป็นเรื่องปกติสำหรับเว็บแอปเช่นกัน ตัวอย่างเช่น แอปพลิเคชันช็อปปิ้งที่มีประสบการณ์หลักอยู่ที่ www.example.com ขณะที่โฟลว์การชำระเงินโฮสต์อยู่ที่ checkout.example.com
ในกรณีเช่นนี้ การแสดงแท็บที่กำหนดเองเป็นสิ่งที่ไม่ต้องการ ไม่เพียงเพราะผู้ใช้อยู่ในแอปพลิเคชันเดียวกันเท่านั้น แต่แถบด้านบนยังอาจทําให้ผู้ใช้คิดว่าออกจากแอปพลิเคชันและยกเลิกการชำระเงิน
กิจกรรมบนเว็บที่เชื่อถือได้ช่วยให้นักพัฒนาแอปตรวจสอบต้นทางหลายแห่งได้ และผู้ใช้จะยังคงอยู่ในโหมดเต็มหน้าจอเมื่อไปยังต้นทางเหล่านั้น นักพัฒนาแอปต้องควบคุมต้นทางที่ตรวจสอบแล้วแต่ละรายการได้เช่นเดียวกับโดเมนหลัก
การตั้งค่าการตรวจสอบสำหรับต้นทางหลายรายการ
เช่นเดียวกับต้นทางหลัก การตรวจสอบจะดำเนินการผ่านลิงก์เนื้อหาดิจิทัล (Digital Asset Links) และแต่ละโดเมนที่จะได้รับการตรวจสอบต้องมีไฟล์ assetlinks.json เป็นของตัวเอง
เพิ่มไฟล์ assetlinks ไปยังต้นทางแต่ละรายการ
ในตัวอย่างที่มี 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) ในแอปพลิเคชันที่ติดตั้งในอุปกรณ์