كيف يمكنني اختبار خدمة Apple Push Notification بدون استخدام iPhone؟
-
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];
ونعم يمكنك التحقق من دفع الاخطار على محاكاة ولكن لديك لاستخدام مكتبة في التطبيق المسماة SimulatorRemoteNotifications أ >. التي باستخدام فقط 4-5 خطوات يمكنك اختبار دفع الاخطار على محاكي.
وكما أنها توفر السنفات جدا
pod 'SimulatorRemoteNotifications', '~> 0.0.3'