iOS অনুমতি ও ডিসকভারি

লোকাল নেটওয়ার্কে ডিভাইস স্ক্যান করে এমন অ্যাপ্লিকেশন এখন ব্যবহারকারীদের লোকাল নেটওয়ার্ক ডিভাইস খুঁজে পেতে এবং কানেক্ট করতে এককালীন অনুমতি ডায়ালগ সহ প্রম্পট করবে। Cast প্ল্যাটফর্ম লোকাল নেটওয়ার্ক ব্যবহার করে Cast ডিভাইস খুঁজে পায় ও নিয়ন্ত্রণ করে, তাই ব্যবহারকারী অনুমতি না দিলে, তিনি কাস্ট করতে পারবেন না।

ব্যবহারকারীর অভিজ্ঞতা উন্নত করতে, আমরা SDK-তে কিছু UX পরিবর্তন করছি যেসব অ্যাপ স্ট্যান্ডার্ড ডিভাইস পিকার ব্যবহার করছে সেগুলির জন্য। এই UX পরিবর্তনগুলি ব্যবহারকারীদের কাছে আরও স্পষ্ট করে তোলে যে কেন স্থানীয় নেটওয়ার্ক অ্যাক্সেসের অনুমতি প্রয়োজন, পাশাপাশি স্থানীয় নেটওয়ার্ক ডিভাইস অ্যাক্সেস বন্ধ থাকলে কীভাবে কাস্টিং চালু করতে হয়।

Cast iOS SDK v4.6.0 বা তার পরবর্তী ভার্সন Swift প্যাকেজ ম্যানেজারের সাথে যোগ করা যেতে পারে। Swift প্যাকেজ ম্যানেজার সেট-আপ অনুসরণ করে অথবা ম্যানুয়াল সেট-আপ অনুসরণ করে ম্যানুয়ালি ডাউনলোড করা যেতে পারে। এই রিলিজে অন্তর্নিহিত ডিসকভারি মেকানিজমে পরিবর্তন করা হয়েছে যাতে Xcode 12-এর মাধ্যমে তৈরি করা অ্যাপ নেটওয়ার্কে Cast ডিভাইস খুঁজে পেতে পারে। 'কাস্ট করুন' বোতামটি এখন সবসময় দেখা যাবে। ব্যবহারকারী কাস্ট বোতামে ট্যাপ করার সময় কোনও ডিভাইস উপলভ্য না থাকলে, একটি ডায়ালগ দেখানো হবে যেখানে ডিভাইস উপলভ্য না থাকার কারণ সম্পর্কে নির্দেশনা দেওয়া থাকবে, যার মধ্যে লোকাল-নেটওয়ার্ক অ্যাক্সেস করার অনুমতি কীভাবে আবার চালু করতে হবে সেই তথ্যও থাকবে।

Cast SDK-তে পরিবর্তন

প্রথমবার কাস্ট করা

ব্যবহারকারী প্রথমবার কাস্ট করার চেষ্টা করলে, লোকাল নেটওয়ার্ক অ্যাক্সেস (LNA) ইন্টারস্টিশিয়াল ডায়ালগ দেখানো হবে, যেখানে লোকাল নেটওয়ার্ক অ্যাক্সেস কেন প্রয়োজন তা ব্যাখ্যা করা হবে, তারপরে Apple-এর দেওয়া iOS লোকাল নেটওয়ার্ক অ্যাক্সেস সংক্রান্ত অনুমতির প্রম্পট দেখানো হবে। নিচের মক-আপে ফ্লো দেখানো হয়েছে:

লোকাল নেটওয়ার্ক অ্যাক্সেসের অনুমতি সংক্রান্ত ফ্লো

কাস্ট উপলভ্য নেই

iOS প্রেরক SDK 4.6.0 থেকে শুরু করে, ব্যবহারকারী ওয়াই-ফাইয়ের সাথে কানেক্ট করলে, সবসময় কাস্ট করার বোতাম দেখানো হয়। কাস্ট ডিভাইস উপলভ্য না থাকলে, কাস্ট বোতামে ট্যাপ করলে একটি ডায়ালগ বক্স খুলে যায়, যেখানে ব্যবহারকারীকে কাস্ট উপলভ্য না থাকার সম্ভাব্য কারণ সম্পর্কে ইঙ্গিত দেওয়া হয়, যেমনটি নিচের মক-আপে দেখানো হয়েছে:

Cast-এর সাথে Flow উপলভ্য নেই

আপনার অ্যাপ আপডেট করা হচ্ছে

  1. আপনার প্রোজেক্টে Cast iOS SDK 4.8.6 যোগ করুন

    Swift প্যাকেজ ম্যানেজার ব্যবহার করলে, google-cast-ios-sdk প্যাকেজটি 4.8.6 ভার্সনে আপডেট করুন।

    অন্যথায়, ম্যানুয়ালি SDK পুল করুন।

  2. আপনার Info.plist-এ NSBonjourServices যোগ করুন

    স্থানীয় নেটওয়ার্ক ডিসকভারি সফল করতে আপনার Info.plist-এ NSBonjourServices উল্লেখ করুন।

    ডিভাইস খোঁজার ফিচার যাতে সঠিকভাবে কাজ করে তার জন্য আপনাকে পরিষেবা হিসেবে _googlecast._tcp এবং _<your-app-id>._googlecast._tcp, দুটিই যোগ করতে হবে।

    appID হল আপনার receiverID, যা আপনার GCKDiscoveryCriteria-এ সংজ্ঞায়িত একই আইডি।

    নিম্নলিখিত উদাহরণ NSBonjourServices সংজ্ঞা আপডেট করুন এবং "ABCD1234"-এর জায়গায় আপনার appID লিখুন।

    <key>NSBonjourServices</key>
    <array>
      <string>_googlecast._tcp</string>
      <string>_ABCD1234._googlecast._tcp</string>
    </array>
  3. আপনার Info.plist-এ NSLocalNetworkUsageDescription যোগ করুন

    আমরা আপনাকে দৃঢ়ভাবে সাজেস্ট করি যে আপনি স্থানীয় নেটওয়ার্ক প্রম্পটে দেখানো মেসেজটি কাস্টমাইজ করুন। এর জন্য আপনার অ্যাপের 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 লোকাল নেটওয়ার্ক অ্যাক্সেস ডায়ালগের অংশ হিসেবে দেখানো হবে, যেমনটি মকে দেখানো হয়েছে।

    Cast লোকাল নেটওয়ার্ক অ্যাক্সেস সংক্রান্ত অনুমতির ডায়ালগ ছবি
  4. Apple App Store-এ আপনার অ্যাপ আবার রিলিজ করা

    আমরা সাজেস্ট করি যে আপনি যত তাড়াতাড়ি সম্ভব 4.8.6 ব্যবহার করে আপনার অ্যাপটি আবার রিলিজ করুন।

কাস্টমাইজ করা

কাস্ট ডিভাইস খোঁজা শুরু করা

ডিফল্ট হিসেবে, ব্যবহারকারী প্রথমবার কাস্ট বোতামে (GCKUICastButton) ট্যাপ করলে কাস্ট ডিভাইস খোঁজার প্রক্রিয়া শুরু হয়। ব্যবহারকারী যদি স্থানীয় নেটওয়ার্কে প্রথমবার কাস্ট অ্যাপ ব্যবহার করার চেষ্টা করেন, তাহলে নতুন LNA ইন্টারস্টিশিয়াল দেখানো হবে, তারপরে iOS স্থানীয় নেটওয়ার্ক অ্যাক্সেস করার অনুমতি সংক্রান্ত ডায়ালগ দেখানো হবে।

ডিভাইস খোঁজা কখন শুরু হবে এবং UX-এর নির্দিষ্ট কিছু এলিমেন্টের আচরণ কেমন হবে তা নিয়ন্ত্রণ করার জন্য একটি নতুন ফ্ল্যাগ উপলভ্য:

startDiscoveryAfterFirstTapOnCastButton: BOOL(true/false)

ডিফল্ট ভ্যালু হল true। এই ফ্ল্যাগ তখনই প্রযোজ্য হয় যখন ফ্ল্যাগ GCKCastOptions::disableDiscoveryAutostart false-এ সেট করা থাকে।

true-এ সেট করা থাকলে, ব্যবহারকারী প্রথমবার GCKUICastButton-এ ট্যাপ করলে, Cast ডিভাইস খোঁজা শুরু হয়। ব্যবহারকারীকে একটি তথ্যমূলক মেসেজ দেখানো হবে যাতে তিনি জানতে পারেন যে কেন স্থানীয় নেটওয়ার্কের অনুমতি প্রয়োজন। সেই মেসেজের পরে, iOS LNA মেসেজ দেখানো হবে। মেসেজটি স্বীকার করার পরে কাস্ট ডিভাইস খোঁজা শুরু হয়।

এর পরে অ্যাপ লঞ্চ করার সময়, GCKUICastButton সবসময় দেখা যায়।

false-এ সেট করা থাকলে, ফ্ল্যাগ GCKCastOptions::disableDiscoveryAutostart-এর ভ্যালুর উপর ভিত্তি করে ডিভাইস খোঁজা শুরু হবে।

প্রায়শই জিজ্ঞাসিত প্রশ্ন

আমি যদি Cast SDK v4.4.8 এবং Xcode 12-এর সাথে আমার Cast প্রেরক অ্যাপ আবার রিলিজ করি তাহলে কী হবে?

Apple থেকে নেটওয়ার্কিং মাল্টিকাস্ট এনটাইটেলমেন্ট না পেলে, আপনার অ্যাপ স্থানীয় নেটওয়ার্কে Cast ডিভাইস খুঁজে নাও পেতে পারে। মনে রাখবেন, Apple শুধুমাত্র Cast-এর জন্য মাল্টিকাস্ট এনটাইটেলমেন্ট প্রদান করবে না। আপনি যদি 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 মেথডকে স্পষ্টভাবে কল করতে হবে।

এই পরিবর্তনের কারণ হল, অ্যাপ প্রথমবার স্ক্যান করার পরে লোকাল নেটওয়ার্ক অ্যাক্সেস (LNA) অনুমতির প্রম্পট দেখানো হবে। এর ফলে আপনার অ্যাপের যেকোনও জায়গায় অনুমতি সংক্রান্ত ডায়ালগ বক্স দেখা যেতে পারে।

যেসব ডেভেলপার তাদের অ্যাপের জন্য কাস্টম ডিভাইস পিকার তৈরি করেন, তাদের প্রথমবার ডিভাইস স্ক্যান করার আগে এককালীন ইন্টারস্টিশিয়াল প্রদান করতে হবে।