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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  2. NSBonjourServices को अपनी Info.plist में जोड़ें

    लोकल नेटवर्क डिस्कवरी की सुविधा को काम करने की अनुमति देने के लिए, अपने 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 का इस्तेमाल करके, कास्टिंग की सुविधा वाले डिवाइसों और 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 का इस्तेमाल करके जल्द से जल्द फिर से रिलीज़ करें.

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

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

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

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

startDiscoveryAfterFirstTapOnCastButton: BOOL(true/false)

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

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

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

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

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

अगर मैं Cast SDK v4.4.8 और Xcode 12 के साथ, Cast sender ऐप्लिकेशन को फिर से रिलीज़ करूं, तो क्या होगा?

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

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

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

4.6.0 वर्शन पर अपग्रेड करने के बाद, मेरे कस्टम डिवाइस पिकर में डिवाइस क्यों नहीं दिख रहे हैं?

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

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

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