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

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

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

Swift Package Manager-এর মাধ্যমে Cast iOS SDK v4.6.0 বা তার পরবর্তী যেকোনও ভার্সন যোগ করা যেতে পারে। এর জন্য Swift Package Manager সেট-আপ সম্পূর্ণ করতে হবে অথবা ম্যানুয়াল সেট-আপ সম্পূর্ণ করে ম্যানুয়ালি ডাউনলোড করতে হবে। এই রিলিজের মধ্যে অন্তর্নিহিত ডিসকভারি মেকানিজমের পরিবর্তন অন্তর্ভুক্ত রয়েছে। এর ফলে 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 দুটিকেই পরিষেবা হিসেবে যোগ করতে হবে।

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

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

    <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 লোকাল নেটওয়ার্ক অ্যাক্সেস ডায়ালগের অংশ হিসেবে মকে দেখানো হয়েছে।

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

    এছাড়াও, আমাদের সাজেশন হল, 4.8.6 ভার্সন ব্যবহার করে যত শীঘ্র সম্ভব আপনার অ্যাপ আবার রিলিজ করুন।

কাস্টমাইজেশন

কাস্ট করার ডিভাইস খুঁজে পাওয়ার প্রসেস শুরু করা

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

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

startDiscoveryAfterFirstTapOnCastButton: BOOL(true/false)

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

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

4.6.0 ভার্সনে আপগ্রেড করার পরে আমার কাস্টম ডিভাইস পিকারে ডিভাইসগুলি কেন আর দেখা যাচ্ছে না?

এটি একটি পরিচিত সমস্যা যা আপনি স্ট্যান্ডার্ড ডিভাইস পিকারের পরিবর্তে কাস্টম ডিভাইস পিকার ব্যবহার করলে হতে পারে। Cast SDK-এর 4.4.8 ও তার আগের ভার্সনে, ডিভাইস স্ক্যান করার প্রসেস অটোমেটিক ছিল। 4.6.0 ভার্সন থেকে শুরু করে, ডিভাইস ডিসকভারি শুরু করার জন্য আপনাকে GCKDiscoveryManager ক্লাসে startDiscovery মেথড স্পষ্টভাবে কল করতে হবে।

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

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