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

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

ff-origin नेविगेशन

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

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

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

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

समस्या का हल

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

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

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