كيف يمكنني اختبار خدمة Apple Push Notification بدون استخدام iPhone؟

StackOverflow https://stackoverflow.com/questions/1080556

  •  22-08-2019
  •  | 
  •  

سؤال

هل من الممكن اختبار خدمات Apple Push Notification بدون تطبيق iPhone؟(هل تريد إنشاء محاكي على النوافذ؟)

إذا لم يكن كذلك، كيف يمكنني اختبار ذلك؟هل هناك تطبيق عينة مجانية تم تجميعها للقيام بذلك؟

لقد قمت بإنشاء موفر الخادم، ولكنني بحاجة إلى اختبار الوظيفة.

هل كانت مفيدة؟

المحلول

(قد تكون هذه الإجابة قديمة بعد عام 2013)

يؤسفني أن أقول ذلك، ولكنك ستحتاج إلى العثور على بعض الأجهزة لاختبار هذه الوظيفة.

إشعارات الدفع غير متوفرة في جهاز المحاكاة.وهي تتطلب ملف تعريف توفير من iTunes Connect، وبالتالي يلزم تثبيتها على الجهاز.وهذا يعني أيضًا أنه من المحتمل أن يتم قبولك في برنامج مطور Apple iPhone ودفع مبلغ 99 دولارًا.

على الجانب المشرق، مع تحديث iPhone OS 3.0، يمكنك اختبار هذه الوظيفة على أي جهاز، بما في ذلك الجيل الأول من أجهزة iPhone.

نصائح أخرى

لا يمكنك اختبار إشعارات الدفع الحقيقية. لكن, ، يمكنك اختبار التطبيق الخاص بك إجابة إلى محاكاة إشعار الدفع عن طريق إنشاء إشعار برمجيًا ويدويًا لتشغيل AppDelegate الخاص بك - application:application didReceiveRemoteNotification:notification طريقة.

لتشغيل هذا من فئة مختلفة (مثل UIViewController):

[[[UIApplication sharedApplication] delegate]
                    application:[UIApplication sharedApplication]
   didReceiveRemoteNotification:testNotification];

يجب أن يكون لـ testNotification نفس تنسيق الإشعار الحقيقي، أي NSDictionary الذي يحتوي على كائنات قائمة الخصائص بالإضافة إلى NSNull.

فيما يلي مثال لكيفية توفير testNotification فوق:

NSMutableDictionary *notification = [[NSMutableDictionary alloc] init];
[notification setValue:@"Test" forKey:@"alert"];
[notification setValue:@"default" forKey:@"sound"];

NSMutableDictionary *testNotification = [[NSMutableDictionary alloc] init];
[testNotification setValue:notification forKey:@"aps"];

من المفترض أن يؤدي هذا إلى إنشاء إشعار معقول NSDictionary للعمل معه.

في أيامنا هذه، يمكننا اختبار دفع الإخطارات مع هذه المكتبة .

وانه من السهل جدا لإرسال دفع عبر محطة:

echo -n '{"message":"message"}' | nc -4u -w1 localhost 9930

echo -n '{"aps":{"alert" : "message","badge" : 99,"sound" : "default"}, "myField" : 54758}' | nc -4u -w1 localhost 9930

وجهاز محاكاة لا لا ادفع الإشعارات.

ولدفع من خادم، يكون لديك جهاز (ق) لدفع لوكذلك التطبيق على هذا الجهاز.

ورمز يحتوي على هوية التطبيق وكذلك معرف الجهاز.

وكان لديك لاستخدام

NSString *notificationString = @"{\"aps\":{\"alert\":\"Test alert\",\"sound\":\"default\"}}";

NSData *notificationData = [notificationString dataUsingEncoding:NSUTF8StringEncoding];

NSDictionary *testNotification = [NSJSONSerialization JSONObjectWithData:notificationData options:0 error:&error];

[[[UIApplication sharedApplication] delegate] application:[UIApplication sharedApplication] didReceiveRemoteNotification:testNotification  fetchCompletionHandler:nil];
scroll top