আইওএস 7 এ সাইলেন্ট পুশ নোটিফিকেশন কাজ করে না


87

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

// A. This doesn't work
{ 
  aps: { 
          content-available: 1 
       }
}

আমার পরীক্ষাটি দেখায় যে কোনও ধাক্কা না পেয়ে এটি কাজ করে না। তবে আমি যদি শব্দটির বৈশিষ্ট্য অন্তর্ভুক্ত করি তবে সতর্কতা বৈশিষ্ট্যটি বাদ দিই, এটি কাজ করে (যদিও আর চুপ করে না)।

// B. This works
{ 
  aps: {
          content-available: 1,
          sound: "default"
       }
}

তবে, আমি যদি নিরব অডিও বাজানোর জন্য শব্দটির বৈশিষ্ট্যটি পরিবর্তন করি তবে আমি একটি নীরব ধাক্কা নকল করতে পারি।

// C. This works too.
{ 
  aps: {
          content-available: 1,
          sound: "silence.wav"
       }
}

কেউ কি জানে:

  1. এই যদি একটি বাগ?
  2. এবং যদি ধরে নেওয়া ঠিক হয় যে বি বা সি দূরবর্তী নোটিফিকেশন হিসাবে বিবেচিত হচ্ছে (এবং সাইলেন্ট পুশের সাথে কোনও বাগ নেই যেখানে আপনার একটি শব্দ বৈশিষ্ট্য প্রয়োজন)? যদি তা হয় তবে এর অর্থ এটি সাইলেন্ট পুশসের মতো সীমাবদ্ধ নয় ... যা অ্যাপল সম্ভবত সমাধান করবে। সুতরাং আমার সম্ভবত এটির উপর নির্ভর করা উচিত নয়।
  3. হারের সীমাটি কী (এন প্রতি X সেকেন্ডে ধাক্কা দেয় ইত্যাদি)?

আগাম ধন্যবাদ.

আরও তথ্য সহ সম্পাদনা করুন

এ এর জন্য, আবেদনের রাজ্যের বিষয়টি বিবেচনা করে না। বিজ্ঞপ্তি কখনও পাওয়া যায় না।

দেখে মনে হচ্ছে কেবল বি এবং সি কাজ করে তবেই আপনি নীচের মতো বিশিষ্টতা এবং মানগুলি বন্ধ করে রাখেন।

{"aps":{"content-available": 1, "sound":"silent.wav"}}

এবং বিজ্ঞপ্তিটি অ্যাপ্লিকেশনে পৌঁছেছে: করনীয় রিমোটনোটিকেশন: ফেচকম্পিশনহ্যান্ডলার: রাষ্ট্র নির্বিশেষে।


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

আমি একইরকম আচরণ দেখছি, আমি ভাবছিলাম এটি হতে পারে কারণ আমি কিছুক্ষণ ধরে এটি চেষ্টা করে যাচ্ছি এবং অ্যাপটি প্রথমে সঠিকভাবে সেট আপ না করায় অ্যাপল আমাকে সেটআপটি সঠিক হওয়ার আগেই গলা টিপেছিল।
নিকডেডুড

4
ডুড ... আমি আশা করি আমি আপনাকে 10 ভোট দিতে পারতাম
মাইকেল উইলস

আপনি Background fetchচেকবক্সটি চেক ইন করেছেন কিনা দেখুন Project Capabilities> Background Modesকারণ প্রথম বিকল্পটি কাজ করা উচিত। সাইলেন্ট পুশটির একটি শব্দের বৈশিষ্ট্য প্রয়োজন হয় application:didReceiveRemoteNotification:fetchCompletionHandler:না এবং অ্যাপ্লিকেশনটি পটভূমিতে / সম্মুখভাগে চলমান বা না চলমান অবস্থায় সর্বদা উপস্থিত হয় ।
IgniteCoders

উত্তর:


73

এটি কাজ করে এবং যখন শব্দ আসে তখন তা বাজায় না:

{
    aps = {
        "content-available" : 1,
        sound : ""
    };
}

সম্পাদনা

এই সমস্যাযুক্ত লোকেরা এই লিঙ্কটি চেক করতে চাইতে পারেন । আমি অ্যাপলের বিকাশকারী ফোরামে একটি থ্রেডে অংশ নিচ্ছি যা সমস্ত অ্যাপ্লিকেশন রাজ্যের উপরে চলে যায় এবং যখন নীরব ঠেলাঠেলি হয় এবং গৃহীত হয় না।


লিঙ্কের জন্য ধন্যবাদ। এডিসির ফোরামে এটি নিয়ে একাধিক থ্রেড আলোচনা করা হচ্ছে। নীচের লাইন: একটি বাগ রয়েছে - ডিভাইস পুনঃসূচনা হওয়ার পরে - যা একটি অ্যাপল প্রতিনিধি স্বীকার করেছে একটি আপডেটে (শেষ পর্যন্ত) ঠিক করা উচিত।
এসজি 1

4
আইওএস 7-তে এটি সাউন্ড / সতর্কতা কী ছাড়াই দুর্দান্ত কাজ করে। সামগ্রী-উপলভ্য যথেষ্ট কী! কিন্তু আইওএস 8-তে আমরা "কন্টেন্ট-উপলভ্য" ছাড়াও খালি খালি স্ট্রিংয়ের সাথে সতর্কতা কী সেট করি তখনও আমাদের সত্যই অদ্ভুত আচরণ ঘটে: 1 আমরা "সতর্কতা" স্ট্রিং সহ কেবলমাত্র ব্যানার পাই, তবে "সামগ্রী-উপলভ্য" কিছু কারণে উপেক্ষা করছে
ম্যালেক্স

অ্যাড যোগ করা শব্দ সহ বা ছাড়াই বিজ্ঞপ্তি থেকে অ্যাপ্লিকেশন চালু করতে আমি সাফল্য পেয়েছি। হতে পারে, একটি শব্দ, সতর্কতা বা ব্যাজ সেট করা (খালি বা না) ডিফল্ট বিজ্ঞপ্তি অগ্রাধিকারটিকে 10 এ বাড়িয়ে দেয়, সুতরাং এটির নির্ভরযোগ্যতা বৃদ্ধি করে। প্যানস-অগ্রাধিকার সম্পর্কে অ্যাপল কী বলেছে তা দেখুন: বিকাশকারী.অ্যাপল. com/library/ios/docamentation/… ডিফল্ট অগ্রাধিকার 10 (উচ্চ), তবে এটি কেবলমাত্র সামগ্রী-উপলভ্য কী সহ পুশ বিজ্ঞপ্তির জন্য ব্যবহার করা একটি ত্রুটি। সুতরাং কেবলমাত্র সামগ্রী-উপলভ্য কী সেট করা থাকলে ডিফল্টটিকে 5 এ সেট করা যেতে পারে।
ইমেমে

4
iOS10 এ কাজ করে না। আমাকে অবশ্যই "শব্দ" করার জন্য কিছু চাপতে হবে।
স্টনি

আমার জন্য iOS10 এ কাজ করেছেন। কিন্তু এখন iOS11 এ কাজ করে না
স্লাভ

30

তাই আমি গতকালই এই সমস্যাটি পেরিয়ে এসেছি এবং খালি স্ট্রিংয়ের সাথে একটি সাউন্ড সেট দিয়ে একটি পেললোড প্রেরণের চেষ্টা করার পরেও এটি ডিভাইসে কম্পন / শব্দ সৃষ্টি করছে। অবশেষে, আমি আরবান এয়ারশিপ থেকে একটি ব্লগ পোস্টে হোঁচট খেয়েছি যাতে এটি প্রেরণের প্রয়োজন হয়:

{ priority: 5 }

পুশ বিজ্ঞপ্তিতে, যা আমি কখনও দেখিনি। পুশ বিজ্ঞপ্তিগুলির জন্য অ্যাপলের ডক্সকে বোঝানোর পরে, আমি এই পৃষ্ঠায় হোঁচট খেয়েছি:

https://developer.apple.com/library/content/docamentation/NETworkingInternet/Conceptual/RemoteNotificationsPG/CommunicatingwithAPNs.html

যা ইঙ্গিত দেয় যে অগ্রাধিকারটি "5" বা "10" হিসাবে সেট করা উচিত এবং ব্যাখ্যা করে:

বিজ্ঞপ্তির অগ্রাধিকার। নিম্নলিখিত মানগুলির মধ্যে একটি সরবরাহ করুন:

10 অবিলম্বে পুশ বার্তা প্রেরণ করা হয়।

পুশ বিজ্ঞপ্তিটি অবশ্যই ডিভাইসে একটি সতর্কতা, শব্দ বা ব্যাজ ট্রিগার করতে হবে। এই অগ্রাধিকারটি এমন ধাক্কার জন্য ব্যবহার করা ত্রুটি যার মধ্যে কেবলমাত্র সামগ্রী-উপলভ্য কী থাকে।

5 পুশ বার্তাটি এমন সময়ে প্রেরণ করা হয় যা এটি গ্রহণ করার ডিভাইসে শক্তি সংরক্ষণ করে।

শেষ পর্যন্ত, আমরা নীচের ফর্ম্যাট সহ একটি ব্যাজ গণনা (এবং আমি সন্দেহ করি যে আপনি এমনকি সতর্কতার সাথেও এটি করতে পেরেছিলেন) নিয়ে কাজ করে নীরব পুশ বিজ্ঞপ্তি পেতে সক্ষম হয়েছি:

    aps =     {
        badge = 7;
        "content-available" = 1;
        priority = 5;
    };

দাবির দুর্দান্ত উত্তর! 5 এর একটি অগ্রাধিকার অনুমোদিত হয় যখন "এই অগ্রাধিকারটি [10] ব্যবহারের ক্ষেত্রে এটির মধ্যে ত্রুটি কারণ কেবলমাত্র সামগ্রী-উপলভ্য কী রয়েছে" " বিকাশকারী.এপল.লাইবারি
আইওএস

4
অগ্রাধিকার পে-লোডের অন্তর্ভুক্ত করা উচিত? আপনার প্রেরিত ধাক্কায় আইএমও এটি এক বাইট সেফ্রেট।
ফোরজিগার

6
অগ্রাধিকার পে-লোডে সেট হয় না। এটি বাইনারি বিজ্ঞপ্তিতে সেট হয়ে যায়।
স্যান্ডি ডি।

10

আমি সতর্কতা বৈশিষ্ট্য হিসাবে একটি খালি স্ট্রিং সেট করার চেষ্টা করেছি এবং এটিও কাজ করেছে:

{
    aps =     {
        "content-available" = 1;
        "alert" = "";
    };
}

দেখে মনে হচ্ছে এপিএনএস পুশ পেইড লোডকে বৈধ করার উদ্দেশ্যে এই বৈশিষ্ট্যগুলির অস্তিত্ব অনুসন্ধান করছে। মজার বিষয়, তারা আসল সামগ্রীটি চেক করছে না। এটি কিছুটা হ্যাকি মনে হচ্ছে যদিও ...


alert=""পে-লোড সহ এই সমাধানটি আমার জন্যও কাজ করেছিল iOS 9.0sound=""পরিবর্তে কাজ করে নি।
loretoparisi

5

আমি হাতিয়ারটি ব্যবহার করি - নুফ আমার ডিভাইসে আমার পুশ বিজ্ঞপ্তি প্রেরণ করে।

এটা দেখতে অনেকটা: এখানে চিত্র বর্ণনা লিখুন

তারপরে, আমি এই উদাহরণটি চেষ্টা করেছিলাম।

তারা সব কাজ! কিন্তু আপনি অগ্রাধিকার 10 সেট করতে হবে!

সুতরাং আপনি যদি সরঞ্জামটি ব্যবহার না করেন তবে আপনি এটিও নোট করুন।


উদাহরণ:

  • কোনও সতর্কতা নেই, কোনও শব্দ নেই

{
    "aps":{
        "content-available":1,
    }
}

  • শুধুমাত্র সতর্কতা

{
    "aps":{
        "content-available":1,
        "alert":""
    }
}

  • শুধু শব্দ

{
    "aps":{
        "content-available":1,
        "sound":""
    }
}


4

এটি আমার পক্ষে কাজ করে:

{ 
  aps: { 
          content-available: 1 
       }
}

যদি আপনি > Background fetchচেকবক্সে চেক করেন তবে দেখুনProject CapabilitiesBackground Modes


2

আমি একই সমস্যা দেখছি। যদি আমি "সামগ্রী-উপলভ্য": 1 এবং অন্য কোনও বৈশিষ্ট্য সেট না করে একটি ধাক্কা প্রেরণ করি তবে বিজ্ঞপ্তিটি কখনই প্রাপ্ত হয় না। আমি যখন অন্য কোনও বৈশিষ্ট্য যুক্ত করি তখন এটি পুরোপুরি কার্যকর হয়।

চারপাশে অস্থায়ী কাজ হিসাবে আমি ব্যাজ বৈশিষ্ট্য যুক্ত করছি কারণ এটি আইকনে ব্যাজ যুক্ত করা ছাড়া কোনওভাবেই ব্যবহারকারীকে সতর্ক করে না।

আপনি যদি আরও ভাল সমাধান খুঁজে পান তবে আমাকে জানান Let


1

অগ্রাধিকার বাইনারি স্ট্রিমের মধ্যে একটি আইটেম হিসাবে সেট করা উচিত তবে পে-লোড জসন স্ট্রিংয়ে নয়। আপাতদৃষ্টিতে অগ্রাধিকার সেট করতে কেবল সর্বশেষতম টাইপ 2 ফর্ম্যাটটি ব্যবহার করা যেতে পারে:

$token      = chr(1) . pack('n', 32)     . pack('H*', $deviceToken);
$payload    = chr(2) . pack('n', strlen($json)) . $json;
$identifier = chr(3) . pack('n', 4)      . pack('N', $notification);
$expiration = chr(4) . pack('n', 4)      . pack('N', time()+86400);
$priority   = chr(5) . pack('n', 1)      . chr($priority);

$frame_data = $token.$payload.$identifier.$expiration.$priority;
$frame_length = strlen(bin2hex($frame_data))/2;

$msg = chr(2) . pack('N', $frame_length) . $frame_data;

দূরবর্তী বিজ্ঞপ্তি বাইনারি বার্তার জন্য ফর্ম্যাট প্রকার (প্রথম বাইট):

0 - সাধারণ (পুরানো) 1 - বর্ধিত (পুরানো) 2 - আরও পরামিতিগুলির সাথে সর্বশেষ (নতুন)


0

আঃ! আমার চুলগুলিও টানছে - এটি এমন কোনও পে-লোডের অন্য উদাহরণ হিসাবে কাজ করে না যা কাজ করে না। ডিড রিসিপরেমোটনোটিকেশন পদ্ধতিটি কখনই ডাকা হয় না, যদিও ডিভাইসটি ঘুমিয়ে থাকলে সতর্কতা পাঠ্যটি প্রদর্শিত হয়।

 {"aps":
    {  "alert":"alert!",
       "sound":"default",
       "content-available" : 1},
    "content-id":21482,
    "apt":"1"
}

"অ্যাপটি" হ'ল একটি বিজ্ঞপ্তি ক্ষেত্র যা আমরা বিজ্ঞপ্তির ধরণটি নির্দেশ করতে ব্যবহার করি।


4
অ্যাপ্লিকেশনটি যদি ব্যাকগ্রাউন্ডে থাকে এবং আপনি যদি 'সতর্কতা' বৈশিষ্ট্যটি সরিয়ে থাকেন তবে আপনার অ্যাপ্লিকেশনটিতে কলব্যাকটি পাওয়া উচিত: করেছেন রিসিপ রিমোটনোটিকেশন: ফেচকম্পিশন হ্যান্ডলার:
এমকিউওন

@ এমকেওয়ান এবং আমি যদি বিজি + তে আবেদন করার সময় সতর্কতাটি (নিয়মিত ধাক্কা) দেখতে চাই তবে অ্যাপ্লিকেশনটি আহ্বান করুন: রিসিভের রিমোটনিউটিফিকেশন: ফেচকম্পিশনহ্যান্ডঃ আরও:? Tnx
DaNLtR


0

5 এ অগ্রাধিকার সেট করা আমার পক্ষে কাজ করে না, তবে শূন্য স্ট্রিংয়ের জন্য শব্দ বা সতর্কতা নির্ধারণের ফলে বিজ্ঞপ্তিটি উচ্চ অগ্রাধিকার হিসাবে হ্যান্ডেল হয়ে যায়


0

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

{
    aps =     {
        alert =         {
            body = "";
            title = "";
        };
        badge = 103;
        "content-available" = 1;
        sound = "";
    };
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.