এই বিষয়টি সম্পর্কে প্রচুর স্ট্যাকওভারফ্লো থ্রেড রয়েছে তবে আমি এখনও একটি ভাল সমাধান পাইনি।
যদি অ্যাপটি ব্যাকগ্রাউন্ডে নয়, আমি পরীক্ষা করতে পারবেন launchOptions[UIApplicationLaunchOptionsRemoteNotificationKey]
মধ্যে application:didFinishLaunchingWithOptions:
কল যদি এটি একটি বিজ্ঞপ্তি থেকে খোলা হয়েছে তা দেখতে হবে।
যদি অ্যাপটি ব্যাকগ্রাউন্ডে থাকে তবে সমস্ত পোস্ট application:didReceiveRemoteNotification:
অ্যাপ্লিকেশন স্থিতি ব্যবহার এবং চেক করার পরামর্শ দেয় । তবে আমি যেমন পরীক্ষিত হয়েছি (এবং এই এপিআইয়ের নামটিও বোঝায়), ট্যাপডের পরিবর্তে বিজ্ঞপ্তিটি এলে এই পদ্ধতিটি কল হয়।
সুতরাং সমস্যাটি হ'ল, যদি অ্যাপটি চালু হয় এবং তারপরে ব্যাকগ্রাউন্ড হয় এবং আপনি জানেন যে কোনও বিজ্ঞপ্তি এসেছে application:didReceiveNotification
( application:didFinishLaunchWithOptions:
এই মুহুর্তে ট্রিগার করবে না), আপনি কীভাবে জানবেন যে ব্যবহারকারী বিজ্ঞপ্তিটি আলতো চাপ দিয়ে বা কেবলমাত্র আলতো চাপ দিয়ে অ্যাপটি পুনরায় চালু করেছেন কিনা? অ্যাপ আইকন? কারণ ব্যবহারকারী যদি বিজ্ঞপ্তিটি ট্যাপ করেন তবে প্রত্যাশাটি সেই বিজ্ঞপ্তিতে উল্লিখিত পৃষ্ঠাটি খুলবে। অন্যথায় এটি করা উচিত নয়।
আমি handleActionWithIdentifier
কাস্টম ক্রিয়াকলাপের বিজ্ঞপ্তিগুলির জন্য ব্যবহার করতে পারি , তবে এটি কেবল তখনই ট্রিগার হয় যখন কোনও কাস্টম অ্যাকশন বোতামটি ট্যাপ করা হয়, যখন ব্যবহারকারী বিজ্ঞপ্তির মূল অংশে ট্যাপ করে না।
ধন্যবাদ।
সম্পাদনা করুন:
নীচে একটি উত্তর পড়ার পরে, আমি এইভাবে আমার প্রশ্নটি পরিষ্কার করে বলতে পারি:
কীভাবে আমরা এই 2 টি পরিস্থিতিতে আলাদা করতে পারি:
(ক) 1. অ্যাপ ব্যাকগ্রাউন্ডে যায়; 2. বিজ্ঞপ্তি প্রাপ্ত; ৩. বিজ্ঞপ্তিতে ব্যবহারকারী ট্যাপ করুন; ৪. অ্যাপ্লিকেশনটি অগ্রভাগে প্রবেশ করে
(খ) 1. অ্যাপ ব্যাকগ্রাউন্ডে যায়; 2. বিজ্ঞপ্তি প্রাপ্ত; ৩. ব্যবহারকারী বিজ্ঞপ্তি উপেক্ষা করে পরে অ্যাপ আইকনে ট্যাপ করে; ৪. অ্যাপ্লিকেশনটি অগ্রভাগে প্রবেশ করে
যেহেতু application:didReceiveRemoteNotification:
পদক্ষেপ 2 এ উভয় ক্ষেত্রেই ট্রিগার করা হয়েছে।
বা, application:didReceiveRemoteNotification:
কেবলমাত্র (এ) এর জন্য তৃতীয় ধাপে ট্রিগার করা উচিত , তবে আমি আমার অ্যাপ্লিকেশনটি ভুলভাবে কনফিগার করেছি তাই আমি এটিকে দ্বিতীয় ধাপে দেখছি?