ऐप्लिकेशन की खास सुविधाओं के लिए कार्रवाइयों से, उपयोगकर्ता यह कहकर सीधे आपके ऐप्लिकेशन के कॉन्टेंट पर जा सकते हैं ऐसा कुछ इस तरह किया जाता है, “Ok Google, मुझे ExampleApp पर थ्री डॉट कैफ़े का मेन्यू दिखाओ.” इस सुविधा को डीप लिंकिंग कहा जाता है. इसकी मदद से, आपके उपयोगकर्ता आपके ऐप्लिकेशन के साथ काम कर सकते हैं.
इस तरह के अनुरोध को पूरा करने के लिए, Google Assistant मिलता-जुलता कॉन्टेंट दिखेगा. अगर आपकी वेबसाइट का रखरखाव किया जाता है, तो कॉन्टेंट या प्रॉडक्ट की जानकारी, और आपके इन-ऐप्लिकेशन डीप लिंक इस तरह व्यवस्थित किए जाते हैं कि यह सार्वजनिक वेब कॉन्टेंट है, तो कार्रवाई के लिए यूआरएल फ़ेच करने के लिए Assistant को कॉन्फ़िगर किया जा सकता है ग्राहक को आइटम भेजने के लिए, वेब इन्वेंट्री का इस्तेमाल करें.
वेब इन्वेंट्री, वेबसाइट पर इस्तेमाल किए जा सकने वाले आइटम के यूआरएल की जगह होती है
आपके ऐप्लिकेशन से मिलता है. जब कोई उपयोगकर्ता आपके ऐप्लिकेशन की कार्रवाई को शुरू करता है, तो Assistant उसका मिलान करके काम करती है
क्वेरी, जैसे “Three Dot Cafe”, जिससे Google Search इंडेक्स में मौजूद मिलते-जुलते यूआरएल को
Android ऐप्लिकेशन के लिए shortcuts.xml
में बताई गई वेबसाइट की वैल्यू का इस्तेमाल करें.
फ़ायदे
वेब इन्वेंट्री, ऐसे ऐप्लिकेशन के लिए फ़ायदेमंद होती है जिनमें बड़ी और नियमित तौर पर अपडेट होने वाली ऐसे आइटम जिन्हें उपयोगकर्ता ऐप्लिकेशन में देखते या ऑर्डर करते हैं:
वेब इन्वेंट्री डेटा आपकी वेबसाइट पर मौजूद होता है. इसमें इनलाइन इन्वेंट्री डेटा, इससे आपके ऐप्लिकेशन में आइटम की सूचियां सेव होती हैं. Assistant को वेब डेटा ऐक्सेस करने की अनुमति देने से बचा जा सकता है पुराने इनलाइन इन्वेंट्री डेटा के जोखिम की संभावना है, जिसे सिर्फ़ ऐप्लिकेशन का नया वर्शन पब्लिश करना होगा.
इनलाइन इन्वेंट्री में 1,000 आइटम ही शामिल किए जा सकते हैं. इसके उलट, एक वेब इन्वेंट्री इसमें आइटम की कोई सीमा नहीं है और यह आपकी ज़रूरतों के साथ बढ़ सकता है.
वेब इन्वेंट्री, ऐप्लिकेशन के लॉजिक को आसान बना सकती है. इसके लिए, ग्राहक को सिर्फ़ इतना ही काम करना होगा आपकी वेबसाइट से मिले ऐसे कॉन्टेंट यूआरएल को हैंडल कर पाएगा जिसके बारे में अनुमान लगाया जा सकता है. इसके उलट, अगर जब किसी इन्वेंट्री को कॉन्फ़िगर नहीं किया गया हो, तो Assistant यूआरएल टेंप्लेट में इंटेंट पैरामीटर को वैरिएबल के साथ मैप करके फ़ुलफ़िलमेंट. आपका इसके बाद, फ़ुलफ़िलमेंट को इस डाइनैमिक रूप से जनरेट किए गए यूआरएल का विश्लेषण करना होगा, ताकि तय करें कि उपयोगकर्ता ने आपके ऐप्लिकेशन में, इस्तेमाल की जा सकने वाली इकाई के लिए अनुरोध किया है या नहीं.
यह कैसे काम करता है
ऐप्लिकेशन की कार्रवाई के दौरान, Assistant अपने ऐप्लिकेशन में मौजूद पहले से मौजूद कॉन्टेंट के ज़रिए, ऐप्लिकेशन के कॉन्टेंट को डीप लिंक करती है
इंटेंट (बीआईआई) जिसे आपने shortcuts.xml
में तय किया है. Assistant आम भाषा में बात करती है
उपयोगकर्ता के अनुरोध में काम के आइटम की पहचान करने और उन्हें एक्सट्रैक्ट करने के लिए प्रोसेसिंग
को बीआईआई पैरामीटर के तौर पर इस्तेमाल करता है. इसके बाद, Assistant पैरामीटर का इस्तेमाल करके एक डीप लिंक जनरेट करती है.
shortcuts.xml.
में ग्राहक को आइटम भेजने के लिए किए गए कॉन्फ़िगरेशन के मुताबिक
ग्राहक को आइटम भेजने के लिए डीप लिंक जनरेट करने के तीन तरीके हैं:
- पैरामीटर मैपिंग: प्लेसहोल्डर के लिए Maps इंटेंट पैरामीटर फ़ुलफ़िलमेंट यूआरएल का टेंप्लेट.
- इनलाइन इन्वेंट्री: इंटेंट पैरामीटर का मिलान इस्तेमाल किए जा सकने वाली सूची से करता है
ऐप्लिकेशन में
entities
के बारे में बताया गया. - वेब इन्वेंट्री: इंटेंट पैरामीटर को किसी वेबसाइट के Google Search इंडेक्स से.
वेब इन्वेंट्री, डेवलपर का तय किया गया वेबसाइट यूआरएल पैटर्न होता है.
जैसे, https://www.exampleapp.com/restaurants/.*
, जो इसके इकाई-सेट को दिखाता है
किसी ऐप्लिकेशन पर काम करने वाली इकाइयां.
अगर किसी वेब इन्वेंट्री के लिए बीआईआई पैरामीटर कॉन्फ़िगर किया गया है, तो
उपयोगकर्ता की क्वेरी से इकाई का मिलान करने के लिए, वेबसाइट पर क्वेरी करता है. इसके बाद Assistant
कॉन्फ़िगर किए गए यूआरएल पैटर्न से मेल खाने वाले यूआरएल नतीजे पास करता है, जैसे
https://www.exampleapp.com/restaurants/three-dot-cafe
, आपके ऑर्डर को पूरा करने के लिए.
![](https://developer.android.com/static/guide/app-actions/images/web-inventory-flow.png?authuser=0000&hl=hi)
इस्तेमाल किए जा सकने वाले बिल्ट-इन इंटेंट
कुछ इंटेंट पैरामीटर के लिए, वेब इन्वेंट्री का इस्तेमाल इन तरीकों से किया जा सकता है बीआईआई:
- [
actions.intent.CREATE_REVIEW
] - [
actions.intent.GET_NEWS_ARTICLE
] - [
actions.intent.GET_REVIEW
] - [
actions.intent.GET_THING
] - [
actions.intent.ORDER_MENU_ITEM
] - [
actions.intent.GET_EXERCISE_PLAN
] - [
actions.intent.GET_DIGITAL_DOCUMENT
] - [
actions.intent.GET_ITEM_LIST
] - [
actions.intent.GET_OFFER
] - [
actions.intent.CREATE_OFFER
] - [
actions.intent.GET_PRODUCT
] - [
actions.intent.UPDATE_CART
] - [
actions.intent.CREATE_SOCIAL_MEDIA_CONNECTION
] - [
actions.intent.GET_IMAGE_OBJECT
] - [
actions.intent.GET_SOCIAL_MEDIA_POSTING
] - [
actions.intent.GET_SOCIAL_MEDIA_PROFILE
] - [
actions.intent.CREATE_TAXI_RESERVATION
] - [
actions.intent.CREATE_FLIGHT_RESERVATION
] - [
actions.intent.CREATE_LODGING_RESERVATION
] - [
actions.intent.GET_LOCAL_BUSINESS
] - [
actions.intent.GET_RESERVATION
] - [
actions.intent.UPDATE_RESERVATION
]
वेब इन्वेंट्री जोड़ें
काम करने वाले बीआईआई की पहचान करने के बाद, उसे वेब इन्वेंट्री के लिए चालू किया जा सकता है. इसके लिए, आपको
shortcuts.xml
में आपकी वेबसाइट की जानकारी होनी चाहिए. shortcuts.xml
फ़ाइल
जिसमें आप अपने Android प्रोजेक्ट में बीआईआई तय करते हैं
ऐप्लिकेशन के फ़ंक्शन और हर बीआईआई को आपके ऐप्लिकेशन के लिए डीप लिंक कैसे जनरेट करना चाहिए, ताकि
पूरा करें. shortcuts.xml
के बारे में ज़्यादा जानने के लिए, short.xml बनाएं लेख पढ़ें.
अगर आपको काम करने वाले बीआईआई के साथ वेब इन्वेंट्री का इस्तेमाल करना है, तो यह तरीका अपनाएं:
अपने ऐप्लिकेशन की
shortcuts.xml
फ़ाइल में, इसकी मदद से<capability>
टैग जोड़ें जिस बीआईआई का इस्तेमाल किया जा रहा है उसके नाम परandroid:name
एट्रिब्यूट सेट किया गया है वेब इन्वेंट्री, उदाहरण के लिए:actions.intent.ORDER_MENU_ITEM
.<capability>
टैग में,android:action
के साथ<intent>
टैग जोड़ें एट्रिब्यूट को इस इंटेंट से चालू किए जाने वाले व्यू के नाम पर सेट किया गया है.उसी
<intent>
टैग में, एक<parameter>
टैग जोड़ें और उसकी बीआईआई पैरामीटर के लिएandroid:name
एट्रिब्यूट, जो सबसे करीब से मेल खाता है आपके वेब पेजों में बताई गई इकाई के लिए. उदाहरण के लिए,ORDER_MENU_ITEM
की वेब इन्वेंट्री में, आपको मेन्यू पेजों कोmenuItem.name
.नए
<parameter>
टैग में,<data>
टैग जोड़ें और उसकीandroid:pathPattern
एट्रिब्यूट का इस्तेमाल करके पाथ के यूआरएल पैटर्न को जोड़ें वेब इन्वेंट्री के लिए इस्तेमाल किया जाता है.
जब इस तरीके का इस्तेमाल करके shortcuts.xml
को कॉन्फ़िगर किया जाता है, तो Assistant ये काम कर सकती है
अपने URL पैटर्न की Google खोज इंडेक्स से वेब सामग्री पुनर्प्राप्त करें
को android:pathPattern
एट्रिब्यूट में दिया गया है. इसके बाद Assistant, वेब पर एक यूआरएल उपलब्ध कराती है
आपके यूआरएल पाथ पैटर्न से मेल खाने वाले नतीजों का इस्तेमाल करके, फ़ुलफ़िलमेंट के लिए वैल्यू
तय किया गया है. इसके बाद, आपका ऐप्लिकेशन लोगों को आपके ऐप्लिकेशन में किसी खास जगह पर भेजता है
के यूआरएल डेटा पर मिलेगी.
उदाहरण के लिए, आपकी वेबसाइट पर ऐसी प्रॉडक्ट लिस्टिंग मौजूद हैं जिनमें यूआरएल पाथ का इस्तेमाल किया गया है
https://www.examplecafe.com/items/
से शुरू होता है. आपने pathPattern
का इस्तेमाल किया है
वैल्यू https://www.examplecafe.com/items/.*
. Assistant इस यूआरएल का इस्तेमाल करती है
ग्राहक को आइटम भेजने का यूआरएल ढूंढने के लिए वेब खोज में पैटर्न, जैसे
https://www.examplecafe.com/items/item123
.
अगर Assistant को मिलता-जुलता कोई वेब इन्वेंट्री यूआरएल मिलता है, तो वह
<data>
फ़ील्ड, जैसे कि यह एक डीप लिंक था. इसका इस्तेमाल करें
getData()
मेथड का इस्तेमाल करके यूआरएल को Uri
ऑब्जेक्ट के तौर पर पाएं. ऐप्लिकेशन गतिविधि जो
इंटेंट, यूआरएल को समझने और उसे चालू करने के लिए ज़िम्मेदार होता है
ऐप्लिकेशन का यूज़र इंटरफ़ेस सही होना चाहिए.
शॉर्टकट.xml का उदाहरण
इस सैंपल में, ORDER_MENU_ITEM
बीआईआई के बारे में बताया गया है, जो
इस तरह की सामग्री वाले अनुरोधों के लिए यूआरएल के नतीजे दिखाने के लिए वेब इन्वेंट्री उपलब्ध कराता है
menuItem.name
बीआईआई पैरामीटर:
<?xml version="1.0" encoding="utf-8"?>
<shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
<capability android:name="actions.intent.ORDER_MENU_ITEM">
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="com.example.myapp"
android:targetClass="com.example.myapp.OrderMenuItemActivity">
<!-- Define URL match pattern in the pathPattern data field -->
<parameter android:name="menuItem.name">
<data android:pathPattern="https://www.examplecafe.com/items/.*"/>
</parameter>
</intent>
</capability>
</shortcuts>
ऊपर दिए गए नमूने में, menuItem.name
के लिए pathPattern
तय किया गया है.
Assistant को सिर्फ़ ऐसे यूआरएल लौटाने के लिए निर्देश देना जो यूआरएल पैटर्न से मेल खाते हों:
https://www.examplecafe.com/items/.*
वेब इन्वेंट्री के साथ काम करने वाले बीआईआई के shortcuts.xml
अन्य उदाहरण
पहचान दस्तावेज़ में उपलब्ध है.
छूटे हुए नतीजों के लिए फ़ॉलबैक मैनेज करना
जब वेब इन्वेंट्री के नतीजों को आपके वाहन को बेचने के लिए नहीं लौटाया जाता, आपके ऐप्लिकेशन में फ़ॉलबैक लॉजिक लागू किया जाना चाहिए, ताकि कार्रवाई को सबसे अच्छी तरह से पूरा किया जा सके उपयोगकर्ता अनुभव को बेहतर बनाया जा सकता है. नतीजे न दिखने की स्थितियों में ये शामिल हैं:
- इंटेंट पैरामीटर मौजूद नहीं है: उपयोगकर्ता ने अपने उपयोगकर्ता की क्वेरी या Assistant को पैरामीटर समझ नहीं आया अनुरोध.
- यूआरएल का नतीजा मौजूद नहीं है: Assistant को इस साइट पर कोई इकाई नहीं मिली उपयोगकर्ता की क्वेरी से मेल खाने वाली वेबसाइट.
पैरामीटर की जो वैल्यू मौजूद नहीं हैं उन्हें मैनेज करने के लिए, एक से ज़्यादा <intent>
तय करें
एलिमेंट शामिल हैं. अगर Assistant पहले इंटेंट को पूरा नहीं कर पाती, तो वह
अगले इरादों पर वापस जाता है और इसी तरह जारी रहता है.
फ़ॉलबैक इंटेंट के लिए पैरामीटर की ज़रूरत नहीं होनी चाहिए. इसके बजाय, उन्हें यह करना चाहिए सुविधा को ज़्यादा सामान्य डीप लिंक से पूरा कर सकता है. जैसे, खोज के नतीजे दिखाना उपयोगकर्ता की क्वेरी के लिए नतीजे.
नीचे दिए गए सैंपल shortcuts.xml
में, ORDER_MENU_ITEM
बीआईआई
दो फ़ुलफ़िलमेंट के बारे में बताता है: पहला यूआरएल, menuItem.name
से यूआरएल मिलने की उम्मीद करता है.
पैरामीटर. दूसरे चरण में किसी पैरामीटर की ज़रूरत नहीं होती, क्योंकि उपयोगकर्ता को दिखाए जाने वाले पेज पर रीडायरेक्ट कर दिया जाता है
सभी मेन्यू आइटम.
<capability android:name="actions.intent.ORDER_MENU_ITEM">
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="com.example.myapp"
android:targetClass="com.example.myapp.OrderMenuItemActivity">
<parameter android:name="menuItem.name">
<data android:pathPattern="https://www.examplecafe.com/items/.*"/>
</parameter>
</intent>
<!-- Fallback intent with no required parameters -->
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="com.example.myapp"
android:targetClass="com.example.myapp.ViewMenuActivity">
<url-template android:value="myapp://app.examplecafe.com/menu/all-items" />
</intent>
</capability>
जब वेब इन्वेंट्री का यूआरएल नहीं दिखाया जाता, तब उपयोगकर्ता के कॉन्टेंट को क्वेरी का इस्तेमाल अब भी फ़ॉलबैक इंटेंट में किया जा सकता है, उदाहरण के लिए, खोज नतीजे दिखाने के लिए नतीजे.
नीचे दिए गए shortcuts.xml
सैंपल में, दो इंटेंट एलिमेंट के बारे में बताया गया है:
- पहले यूआरएल के लिए,
menuItem.name
से वेब इन्वेंट्री का डीप लिंक लेना ज़रूरी है पैरामीटर. - अगर कोई डीप लिंक नहीं मिलता है, तो दूसरा इंटेंट खोज दिखाता है
अगर यह जानकारी मौजूद है, तो
menuItem.name
से उपयोगकर्ता की क्वेरी का इस्तेमाल करके.
<capability android:name="actions.intent.ORDER_MENU_ITEM">
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="com.example.myapp"
android:targetClass="com.example.myapp.OrderMenuItemActivity">
<parameter android:name="menuItem.name">
<data android:pathPattern="https://www.examplecafe.com/items/.*" />
</parameter>
</intent>
<!-- Fallback intent displaying search results, using "menuItem.name" -->
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="com.example.myapp"
android:targetClass="com.example.myapp.SearchMenuActivity">
<parameter-mapping android:name="menuItem.name" android:key="food" />
<url-template android:value="https://www.examplecafe.com/search?q={?food}" />
</intent>
</capability>
वेब इन्वेंट्री के साथ इन-ऐप्लिकेशन खोज की सुविधा जोड़ना
वेब को जोड़कर, उपयोगकर्ताओं को अपने ऐप्लिकेशन पर वेब कॉन्टेंट खोजने की सुविधा दी जा सकती है
actions.intent.GET\_THING
बीआईआई को लागू करने से जुड़ी इन्वेंट्री.
यह बीआईआई, डिफ़ॉल्ट इन-ऐप्लिकेशन खोज का इस्तेमाल करके कॉन्टेंट या इकाइयों को खोजता है
किसी ऐप्लिकेशन में सुविधा की मदद से, इस तरह की क्वेरी चालू की जा सकती हैं: “Ok Google, मुझे वॉटरफ़ॉल हाइक दिखाओ
पर जाएं.” thing.name
सुविधा के लिए वेब इन्वेंट्री को कॉन्फ़िगर करके
GET_THING
बीआईआई से पास किया गया पैरामीटर, आपके
वेबसाइट को पूरा करने के लिए भेज दिया जाता है.
वेब इन्वेंट्री के shortcuts.xml
सैंपल के लिए, GET\_THING
बीआईआई का रेफ़रंस देखें.
वेब इन्वेंट्री की जांच करना
जब बीआईआई के काम के लिए वेब इन्वेंट्री तय की जाती है, तो Assistant
आपके तय किए गए urlTemplate
पैटर्न से मिलते-जुलते वेब नतीजों का इस्तेमाल करके डीप लिंक
दिया गया बीआईआई पैरामीटर है. अगर वेब इन्वेंट्री का नतीजा नहीं मिलता है, तो Assistant
आपके फ़ॉलबैक इंटेंट के urlTemplate
पैटर्न से मेल खाने वाला यूआरएल जनरेट करता है. आपने लोगों तक पहुंचाया मुफ़्त में
की मदद से आपकी वेब इन्वेंट्री को लागू करने की प्रोसेस की जांच की जा सकती है. इसके लिए, इस बात की पुष्टि की जाती है कि Assistant
इससे ऐसे यूआरएल मिलते हैं जो आपकी वेब इन्वेंट्री के urlTemplate
पैटर्न से मेल खाते हैं.
ORDER_MENU_ITEM
बीआईआई के इस सैंपल में, Assistant वेब इन्वेंट्री जनरेट करती है
कार्रवाई के लिंक जो urlFilter
पैटर्न से मेल खाते हैं
menuItem.name
पैरामीटर का उदाहरण:
https://www.examplecafe.com/items/nuggets
. दूसरे इंटेंट में
menuItem.name
और पहला इंटेंट मैच न होने पर खोज करता है
यूआरएल पैटर्न.
<capability android:name="actions.intent.ORDER_MENU_ITEM">
<!-- web inventory fulfillment -->
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="com.example.myapp"
android:targetClass="com.example.myapp.OrderMenuItemActivity">
<parameter name="menuItem.name">
<data android:pathPattern="https://www.examplecafe.com/items/.*" />
</parameter>
</intent>
<!-- search intent -->
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="com.example.myapp"
android:targetClass="com.example.myapp.MenuSearchActivity">
<parameter-mapping android:name="menuItem.name" android:key="food" />
<url-template android:value="https://www.examplecafe.com/search?q={?food}" />
</intent>
</capability>
किसी फ़िज़िकल या वर्चुअल वेब इन्वेंट्री की जांच करने के लिए, ऐप्लिकेशन ऐक्शन टेस्ट टूल का इस्तेमाल करें डिवाइस.
जांच टूल का इस्तेमाल करने के लिए, यह तरीका अपनाएं:
- अपने टेस्ट डिवाइस को ऐप्लिकेशन के साथ कनेक्ट करें.
- Android Studio में, टूल > पर जाएं ऐप्लिकेशन की खास सुविधाओं के लिए कार्रवाइयां > ऐप्लिकेशन की खास सुविधाओं के लिए कार्रवाइयों की जांच टूल.
- झलक बनाएं पर क्लिक करें.
- Android Studio में, अपने टेस्ट डिवाइस पर ऐप्लिकेशन चलाएं.
- ऐप्लिकेशन की ख़ास सुविधाओं के लिए कार्रवाई को आज़माने के लिए, अपने टेस्ट डिवाइस पर Assistant ऐप्लिकेशन का इस्तेमाल करें. इसके लिए उदाहरण के लिए, आप कुछ इस तरह कह सकते हैं, "Ok Google, ExampleCafe पर नगेट्स ऑर्डर करें".
- अपने ऐप्लिकेशन के व्यवहार को देखें या Android Studio डीबगर का इस्तेमाल करके, नतीजे की पुष्टि करें.