iOS अनुमतियां और खोज

लोकल नेटवर्क पर डिवाइसों को स्कैन करने वाले ऐप्लिकेशन, अब उपयोगकर्ताओं को एक बार के लिए अनुमति वाला डायलॉग बॉक्स दिखाएंगे. इससे, लोकल नेटवर्क पर मौजूद डिवाइसों को ढूंढने और उनसे कनेक्ट करने में मदद मिलेगी. Cast प्लैटफ़ॉर्म, Cast की सुविधा वाले डिवाइसों को ढूंढने और उन्हें कंट्रोल करने के लिए, लोकल नेटवर्क का इस्तेमाल करता है. इसलिए, अगर उपयोगकर्ता अनुमति नहीं देता है, तो वह कास्ट नहीं कर पाएगा.

उपयोगकर्ता अनुभव को बेहतर बनाने के लिए, हम एसडीके के यूएक्स में कुछ बदलाव कर रहे हैं. ये बदलाव उन ऐप्लिकेशन के लिए किए जा रहे हैं जो स्टैंडर्ड डिवाइस पिकर का इस्तेमाल करते हैं. यूएक्स में किए गए इन बदलावों से, उपयोगकर्ताओं को यह समझने में आसानी होती है कि लोकल नेटवर्क को ऐक्सेस करने की अनुमतियां क्यों ज़रूरी हैं. साथ ही, अगर लोकल नेटवर्क डिवाइस का ऐक्सेस बंद कर दिया गया है, तो कास्ट करने की सुविधा को चालू करने का तरीका भी पता चलता है.

Cast iOS SDK टूल के 4.6.0 या इसके बाद के वर्शन को Swift Package Manager की मदद से जोड़ा जा सकता है. इसके लिए, Swift Package Manager सेटअप पर जाएं. इसके अलावा, मैन्युअल सेटअप पर जाकर, इसे मैन्युअल तरीके से डाउनलोड किया जा सकता है. इस रिलीज़ में, डिवाइसों को खोजने के लिए इस्तेमाल होने वाले बुनियादी तरीके में बदलाव किए गए हैं. इससे Xcode 12 की मदद से बनाए गए ऐप्लिकेशन, नेटवर्क पर कास्ट किए जा सकने वाले डिवाइसों को ढूंढ पाएंगे. अब कास्ट बटन हमेशा दिखना चाहिए. अगर उपयोगकर्ता के कास्ट बटन पर टैप करने पर कोई डिवाइस उपलब्ध नहीं होता है, तो एक डायलॉग बॉक्स दिखेगा. इसमें बताया जाएगा कि डिवाइस उपलब्ध क्यों नहीं हैं. इसमें लोकल-नेटवर्क ऐक्सेस की अनुमति को फिर से चालू करने का तरीका भी बताया जाएगा.

Cast SDK में हुए बदलाव

पहली बार कास्ट करना

जब कोई उपयोगकर्ता पहली बार कास्ट करने की कोशिश करता है, तो उसे लोकल नेटवर्क ऐक्सेस (एलएनए) का इंटरस्टीशियल डायलॉग बॉक्स दिखेगा. इसमें बताया जाएगा कि लोकल नेटवर्क ऐक्सेस की ज़रूरत क्यों है. इसके बाद, Apple के iOS लोकल नेटवर्क ऐक्सेस की अनुमतियों का प्रॉम्प्ट दिखेगा. नीचे दिए गए मॉक, फ़्लो को दिखाते हैं:

लोकल नेटवर्क के ऐक्सेस की अनुमतियों का फ़्लो

कास्ट करने की सुविधा उपलब्ध नहीं है

iOS सेंडर SDK टूल के 4.6.0 वर्शन से, कास्ट बटन हमेशा तब दिखता है, जब उपयोगकर्ता वाई-फ़ाई से कनेक्ट होता है. जब कास्ट करने की सुविधा वाले डिवाइस उपलब्ध नहीं होते, तब कास्ट बटन पर टैप करने से एक डायलॉग बॉक्स खुलता है. इसमें उपयोगकर्ता को कास्ट करने की सुविधा उपलब्ध न होने की संभावित वजहों के बारे में बताया जाता है. इसके बारे में नीचे दिए गए मॉक में बताया गया है:

Cast के साथ Flow की सुविधा उपलब्ध नहीं है

ऐप्लिकेशन अपडेट करना

  1. अपने प्रोजेक्ट में Cast iOS SDK 4.8.6 जोड़ना

    अगर Swift Package Manager का इस्तेमाल किया जा रहा है, तो google-cast-ios-sdk पैकेज को 4.8.6 वर्शन पर अपडेट करें.

    इसके अलावा, एसडीके को मैन्युअल तरीके से पुल करें.

  2. Info.plist में NSBonjourServices को जोड़ना

    लोकल नेटवर्क डिस्कवरी की सुविधा को चालू करने के लिए, अपने Info.plist में NSBonjourServices की जानकारी दें.

    डिवाइस खोजने की सुविधा ठीक से काम करे, इसके लिए आपको _googlecast._tcp और _<your-app-id>._googlecast._tcp, दोनों को सेवाओं के तौर पर जोड़ना होगा.

    appID आपका receiverID होता है. यह वही आईडी होता है जो आपके GCKDiscoveryCriteria में तय किया गया है.

    यहां दिए गए उदाहरण में, NSBonjourServices की परिभाषा को अपडेट करें और "ABCD1234" की जगह अपना ऐप्लिकेशन आईडी डालें.

    <key>NSBonjourServices</key>
    <array>
      <string>_googlecast._tcp</string>
      <string>_ABCD1234._googlecast._tcp</string>
    </array>
  3. NSLocalNetworkUsageDescription को अपने Info.plist में जोड़ें

    हमारा सुझाव है कि आप लोकल नेटवर्क प्रॉम्प्ट में दिखने वाले मैसेज को पसंद के मुताबिक बनाएं. इसके लिए, अपने ऐप्लिकेशन की Info.plist फ़ाइल में, NSLocalNetworkUsageDescription के लिए ऐप्लिकेशन के हिसाब से अनुमति वाली स्ट्रिंग जोड़ें. जैसे, Cast की खोज और DIAL जैसी अन्य खोज सेवाओं के बारे में बताने के लिए.

    <key>NSLocalNetworkUsageDescription</key>
    <string>${PRODUCT_NAME} uses the local network to discover Cast-enabled devices on your WiFi
    network.</string>

    यह मैसेज, iOS लोकल नेटवर्क ऐक्सेस डायलॉग के हिस्से के तौर पर दिखेगा, जैसा कि मॉक में दिखाया गया है.

    कास्ट करने के लिए, लोकल नेटवर्क के ऐक्सेस की अनुमतियों वाले डायलॉग बॉक्स की इमेज
  4. Apple App Store पर अपने ऐप्लिकेशन को फिर से रिलीज़ करना

    हमारा सुझाव है कि आप जल्द से जल्द 4.8.6 का इस्तेमाल करके, अपने ऐप्लिकेशन को फिर से रिलीज़ करें.

कस्टमाइज़ेशन

कास्ट डिवाइस खोजने की प्रोसेस शुरू करना

डिफ़ॉल्ट रूप से, कास्ट किए जा सकने वाले डिवाइसों को खोजने की प्रोसेस तब शुरू होती है, जब उपयोगकर्ता पहली बार कास्ट बटन (GCKUICastButton) पर टैप करता है. अगर उपयोगकर्ता ने लोकल नेटवर्क पर पहली बार कास्ट ऐप्लिकेशन का इस्तेमाल करने की कोशिश की है, तो नया एलएनए इंटरस्टीशियल दिखेगा. इसके बाद, iOS लोकल नेटवर्क ऐक्सेस की अनुमतियों वाला डायलॉग बॉक्स दिखेगा.

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

startDiscoveryAfterFirstTapOnCastButton: BOOL(true/false)

डिफ़ॉल्ट वैल्यूtrue है यह फ़्लैग सिर्फ़ तब लागू होता है, जब फ़्लैग GCKCastOptions::disableDiscoveryAutostart को false पर सेट किया गया हो.

अगर इसे true पर सेट किया जाता है, तो कास्ट डिवाइस की खोज तब शुरू होती है, जब कोई उपयोगकर्ता पहली बार GCKUICastButton पर टैप करता है. उपयोगकर्ता को एक मैसेज दिखेगा, जिसमें बताया जाएगा कि लोकल नेटवर्क की अनुमति क्यों ज़रूरी है. इसके बाद, iOS एलएनए मैसेज दिखेगा. मैसेज की पुष्टि होने के बाद, कास्ट डिवाइस को खोजने की प्रोसेस शुरू होती है.

ऐप्लिकेशन को बाद में लॉन्च करने पर, GCKUICastButton हमेशा दिखता है.

अगर इसे false पर सेट किया जाता है, तो डिवाइस खोजने की सुविधा, फ़्लैग GCKCastOptions::disableDiscoveryAutostart की वैल्यू के आधार पर शुरू होगी.

अक्सर पूछे जाने वाले सवाल

अगर मैं Cast SDK टूल के वर्शन 4.4.8 और Xcode 12 के साथ, Cast sender app को फिर से रिलीज़ करूं, तो क्या होगा?

ऐसा हो सकता है कि आपका ऐप्लिकेशन, लोकल नेटवर्क पर कास्ट डिवाइसों को न ढूंढ पाए. ऐसा तब तक होगा, जब तक आपको Apple से नेटवर्किंग मल्टीकास्ट एनटाइटलमेंट नहीं मिल जाता. ध्यान दें कि Apple, सिर्फ़ कास्ट करने की सुविधा के लिए मल्टीकास्ट के अधिकार नहीं देगा. अगर आपको Xcode 12 का इस्तेमाल करके ऐप्लिकेशन बनाना है, तो आपको Cast 4.6.0 के साथ अपना ऐप्लिकेशन रिलीज़ करना चाहिए.

Cast SDK का नया वर्शन रिलीज़ होने के बाद, मुझे अपना ऐप्लिकेशन अपडेट करने के लिए क्या करना होगा?

  • अपने ऐप्लिकेशन के Info.plist को अपडेट करें, ताकि उसमें लोकल नेटवर्क के इस्तेमाल की जानकारी शामिल की जा सके.
  • अपने ऐप्लिकेशन के Info.plist में NSBonjourServices जोड़ें. साथ ही, Cast के लिए Bonjour सेवा के नाम और अपने ऐप्लिकेशन का आईडी दें.
  • Cast SDK 4.6.0 का इस्तेमाल करने के लिए, अपने सेंडर ऐप्लिकेशन को अपग्रेड करें.
  • Apple App Store पर अपने ऐप्लिकेशन को फिर से रिलीज़ करें.

वर्शन 4.6.0 पर अपग्रेड करने के बाद, डिवाइस चुनने के लिए बनाए गए कस्टम टूल में डिवाइस दिखने बंद क्यों हो गए?

यह एक ऐसी समस्या है जो स्टैंडर्ड डिवाइस पिकर के बजाय, कस्टम डिवाइस पिकर का इस्तेमाल करने पर हो सकती है. Cast SDK के वर्शन 4.4.8 और इससे पहले के वर्शन में, डिवाइस को स्कैन करने की सुविधा अपने-आप काम करती थी. वर्शन 4.6.0 से, आपको डिवाइस खोजने की सुविधा चालू करने के लिए, GCKDiscoveryManager क्लास पर startDiscovery तरीके को साफ़ तौर पर कॉल करना होगा.

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

जिन डेवलपर ने अपने ऐप्लिकेशन के लिए, पसंद के मुताबिक डिवाइस पिकर बनाया है उन्हें पहली बार डिवाइस स्कैन करने से पहले, एक बार दिखने वाला इंटरस्टीशियल विज्ञापन दिखाना होगा.