দূরবর্তী পুশ বিজ্ঞপ্তিগুলিকে কি তথ্য.প্লেস্টে ইউআইব্যাকগ্রাউন্ডমোডগুলি যুক্ত করতে হবে?


104

আমি একীভূত দূরবর্তী পুশ বিজ্ঞপ্তিগুলি পেয়েছি, তবে আমি এই সতর্কতাটি পাচ্ছি:

didReceiveRemoteNotification:fetchCompletionHandler:], কিন্তু আপনি এখনও জুড়তে "প্রয়োজন remote-notificationআপনার সমর্থিত তালিকায়" UIBackgroundModeআপনার গুলি Info.plist

আমার এক্সকোড সংস্করণটি 8.3.1। আমি সত্যিই এটি যুক্ত করতে চান Info.plist। আমি কিছু টিউটোরিয়ালও অনুসরণ করেছি তবে তারা এটির উল্লেখও করেনি। আমার আসলে কী করা উচিত?

উত্তর:


245

হ্যাঁ, পটভূমি আপডেটের জন্য দূরবর্তী বিজ্ঞপ্তিগুলি ব্যবহার করতে সক্ষম হতে আপনার পটভূমি মোড / রিমোট বিজ্ঞপ্তিগুলি সক্ষম করা উচিত।

এটি করার সবচেয়ে সহজ উপায় হল প্রকল্প সেটিংস via নেভিগেট করতে লক্ষ্যগুলি -> আপনার অ্যাপ -> কেপেবিলিটিস -> পটভূমি মোড এবং চেক রিমোট বিজ্ঞপ্তিগুলি । এটি স্বয়ংক্রিয়ভাবে প্রয়োজনীয় সেটিংস সক্ষম করবে।

প্রজেক্ট সেটিংসে পটভূমি মোডগুলি ড্রপডাউন তালিকা


3
আমি ইতিমধ্যে সেই ক্ষেত্রটি চেক করেছি তবে এখনও একই ত্রুটি পেয়েছি।
অনুজ 1'18

অনুজ নীচে আমার উত্তর দেখুন
জোশুয়া ক্লিটাস

1
আমি এই উত্তরের সাথে একমত নই আপনি কেবল ব্যাকগ্রাউন্ড মোডগুলি সক্ষম করতে হবে -> আপনি যদি কোনও পটভূমি আপডেট করতে দূরবর্তী বিজ্ঞপ্তি ব্যবহার করেন তবেই দূরবর্তী বিজ্ঞপ্তিগুলি। দয়া করে এখানে ডক্স পড়ুন একটি পটভূমি আপডেট বিজ্ঞপ্তি কনফিগার করা
জেজেফেরিনো

1
@ জজেফেরিনো বিজ্ঞপ্তির জন্য ধন্যবাদ, আমি আমার উত্তরে কিছু স্পষ্টতা যোগ করেছি। মনে রাখবেন যে আসল প্রশ্নটি application(_:didReceiveRemoteNotification:fetchCompletionHandler:)ফাংশনটি সম্পর্কে ছিল যা ডেটা আনতে পরিচালনার জন্য ব্যবহৃত হয়।
ট্যামস সেনজেল

এটি দুর্দান্ত, তবে ব্যাকগ্রাউন্ড আপডেটগুলির জন্য আপনার সক্ষমতা প্রয়োজন কিনা এর প্রশ্নের উত্তর দেয়, অবশ্যই আপনি কোনটি করেন। আপনাকে কেবল ধাক্কা বিজ্ঞপ্তিগুলির জন্য পটভূমি মোডের ক্ষমতা নির্ধারণ করতে হবে কিনা সে সম্পর্কে একটি উত্তর পোস্ট করেছি (স্পয়লার, আপনি করবেন না)।
মোবব

30

আপনি প্রয়োজনীয় তথ্য.পালিস্ট সম্পাদনা করতে পারেন (যেমন -> উত্স কোড খুলুন) এবং পেস্ট করুন:

<dict>
<key>UIBackgroundModes</key>
    <array>
        <string>remote-notification</string>
    </array>

7
ব্যাকগ্রাউন্ড
মোডে

1
আমার জন্য নয়: সংস্করণ 11.4.1 (11E503a)
পায়েগো

4

আসলে, রিমোট নোটিফিকেশনগুলি ব্যবহার করার জন্য আপনাকে .plist এ ইউআইব্যাকগ্রাউন্ডমোডগুলি যুক্ত করার দরকার নেই।

আমি জানি আমি উত্তরাধিকারীদের কিছুটা বিভক্ত করছি (অন্য উত্তরটি বেশিরভাগই দুর্দান্ত, এবং সম্ভবত আইওএস 11-তে নতুন কিছু আছে), তবে প্রশ্নটি ব্যাকগ্রাউন্ড আপডেটগুলির প্রয়োজনীয় নোটিফিকেশনগুলিকে ধাক্কা দেয়, এবং তারা তা করে না।

পার্থক্যটি এখানে, দুটি আলাদা পদ্ধতি রয়েছে যা অ্যাপডেলিগেটে বিজ্ঞপ্তিগুলি গ্রহণ করে;

এটির জন্য আপনাকে ইউআইব্যাকগ্রাউন্ডমোডগুলি ব্যবহার করার দরকার নেই:

optional func userNotificationCenter(_ center: UNUserNotificationCenter, 
                         willPresent notification: UNNotification, 
               withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void)

উপরোক্তগুলি iOS 11 হিসাবে অবহেলিতকে প্রতিস্থাপন করে:

optional func application(_ application: UIApplication, 
didReceiveRemoteNotification userInfo: [AnyHashable : Any])

এবং এটির জন্য পটভূমি মোডের ক্ষমতা প্রয়োজন:

optional func application(_ application: UIApplication, 
didReceiveRemoteNotification userInfo: [AnyHashable : Any], 
   fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void)

এখানে মূল জিনিসটি হ'ল প্রাক্তনটি (এবং এটি প্রতিস্থাপনযোগ্য হ'ল) ​​কেবল তখনই চালিত হয় যখন অ্যাপ্লিকেশনটি অগ্রভাগে থাকে। যদি অ্যাপটি ফোরগ্রাউন্ডে বা ব্যাকগ্রাউন্ডে থাকে তবে পরে চলবে। দেখুন বৈশিষ্ট এই নির্দিষ্ট দলা জন্য:

আপনার অ্যাপের জন্য আগত দূরবর্তী বিজ্ঞপ্তিগুলি প্রক্রিয়া করতে এই পদ্ধতিটি ব্যবহার করুন। অ্যাপ্লিকেশনটির বিপরীতে (_: didReieveRemoteNotifications :) পদ্ধতি, যা কেবল তখনই বলা হয় যখন আপনার অ্যাপ্লিকেশনটি পূর্বগ্রাউন্ডে চলমান থাকে, যখন আপনার অ্যাপ্লিকেশনটি পূর্বগ্রাউন্ডে বা ব্যাকগ্রাউন্ডে চলমান থাকে তখন সিস্টেম এই পদ্ধতিটি কল করে।

অতএব, আপনার যদি ধাক্কা বিজ্ঞপ্তিগুলির প্রয়োজন হয়, তবে আপনার পটভূমিতে চালানো দরকার কিনা তা সিদ্ধান্ত নিন - কেবল আপনার যদি উভয়ের প্রয়োজন হয় তবে আপনাকে সতর্কতার প্রস্তাবিত পদ্ধতিটি প্রয়োগ করা উচিত।


3

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

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.