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

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

ff-ऑरिजिन नेविगेशन

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

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

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

समस्या का हल

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

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

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