एक से ज़्यादा जगहों पर की जाने वाली भरोसेमंद वेब गतिविधियां

भरोसेमंद वेब गतिविधियां, कस्टम टैब पर आधारित प्रोटोकॉल का इस्तेमाल करके, वेब ऐप्लिकेशन के कॉन्टेंट, जैसे कि PWA को Android ऐप्लिकेशन के साथ इंटिग्रेट करने का नया तरीका है.

एफ़एफ़-ऑरिजिन नेविगेशन

भरोसेमंद वेब गतिविधि को फ़ुल-स्क्रीन में कॉन्टेंट दिखाने के लिए, यह ज़रूरी है कि ऑरिजिन की पुष्टि करने के लिए डिजिटल ऐसेट लिंक का इस्तेमाल किया गया हो.

जब कोई उपयोगकर्ता पुष्टि किए गए ऑरिजिन से बाहर निकलता है, तो कस्टम टैब का यूज़र इंटरफ़ेस (यूआई) दिखाया जाता है. कस्टम टैब में मौजूद यूआरएल बार, उपयोगकर्ताओं को बताता है कि वे अब ऐप्लिकेशन से बाहर के डोमेन पर नेविगेट कर रहे हैं. साथ ही, उपयोगकर्ताओं को एक X बटन भी देता है, जिससे वे तुरंत पुष्टि किए गए ऑरिजिन पर वापस जा सकते हैं.

हालांकि, वेब ऐप्लिकेशन के लिए ऐसे अनुभव बनाना भी आम बात है जो एक से ज़्यादा ऑरिजिन वाले होते हैं. इसका एक उदाहरण www.example.com पर मुख्य अनुभव वाला शॉपिंग ऐप्लिकेशन होगा, जबकि चेकआउट फ़्लो को checkout.example.com पर होस्ट किया जाता है.

इस तरह के मामलों में, कस्टम टैब दिखाना ज़रूरी नहीं होता. ऐसा इसलिए, क्योंकि न सिर्फ़ उपयोगकर्ता उसी ऐप्लिकेशन में है, बल्कि सबसे ऊपर मौजूद बार की वजह से भी उपयोगकर्ता को ऐप्लिकेशन छोड़कर छोड़ने की ज़रूरत हो सकती है.

भरोसेमंद वेब गतिविधियों की मदद से, डेवलपर एक से ज़्यादा ऑरिजिन की पुष्टि कर सकते हैं. साथ ही, उन ऑरिजिन पर नेविगेट करते समय उपयोगकर्ता फ़ुल-स्क्रीन में बना रहेगा. मुख्य डोमेन की तरह ही, डेवलपर के पास हर पुष्टि किए गए ऑरिजिन को कंट्रोल करने की सुविधा होनी चाहिए.

एक से ज़्यादा ऑरिजिन के लिए पुष्टि करने की सुविधा सेट अप करना

मुख्य ऑरिजिन में, डिजिटल एसेट लिंक से पुष्टि की जाती है. साथ ही, जिस डोमेन की पुष्टि होनी है उसके पास अपनी 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 फ़ाइलों में कुछ ऐसा होगा:

[{
  "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 का इस्तेमाल करना

android-browser-helper सहायता लाइब्रेरी में शामिल LauncherActivity की मदद से, एक से ज़्यादा ऑरिजिन जोड़े जा सकते हैं, ताकि उनकी पुष्टि की जा सके. इसके लिए, Android प्रोजेक्ट को कॉन्फ़िगर करें.

सबसे पहले, res/values/strings.xml फ़ाइल में string-array एलिमेंट जोड़ें. पुष्टि किए जाने वाले हर अतिरिक्त यूआरएल को item सब-एलिमेंट में रखा जाएगा:

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

इसके बाद, मौजूदा ऐक्टिविटी एलिमेंट में एक नया meta-data टैग जोड़ें, जो AndroidManifest.xml में मौजूद LauncherActivity का रेफ़रंस देता हो:

...
<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 को कॉल करें और इंटेंट को भरोसेमंद वेब गतिविधि लॉन्च करने के लिए कॉल करें:

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-ब्राउज़र-हेल्पर के पास एक से ज़्यादा ऑरिजिन वाली भरोसेमंद वेब गतिविधियों के लिए एक सैंपल ऐप्लिकेशन है. इसकी जांच करना न भूलें.

समस्या हल करना

डिजिटल ऐसेट लिंक को सेट अप करने के कुछ चरण होते हैं. अगर ऐप्लिकेशन अब भी सबसे ऊपर कस्टम टैब बार दिखा रहा है, तो हो सकता है कि कॉन्फ़िगरेशन में कुछ गलत है.

डिजिटल ऐसेट लिंक से जुड़ी समस्याओं को डीबग करने के तरीके के बारे में जानने के लिए, भरोसेमंद वेब गतिविधि के बारे में आसानी से बताने/सिखाने वाली गाइड में समस्या हल करने वाला एक सेक्शन मौजूद है.

इसके अलावा, शानदार पीटर का ऐसेट लिंक टूल भी मौजूद है, जो डिवाइस पर इंस्टॉल किए गए ऐप्लिकेशन पर डिजिटल ऐसेट लिंक को डीबग करने में मदद करता है..