APNs на Лев.Что возможно? - PullRequest
1 голос
/ 30 января 2012

Я планирую приложение для Mac OS X (Lion) и хочу задать несколько вопросов о APN.

Прежде всего: Можете ли вы отправить APN приложению Lion, отличному от значка или оповещения? То есть, возможно, вы можете отправить пару ключ / значение или некоторые такие данные конечному приложению, которое оно может использовать, чтобы определить, какое действие предпринять? Я уверен, что смогу сделать это на iOS, но не на Mac OS X

Сможет ли приложение, получающее событие, сделать это, даже если оно находится в фоновом режиме?

Наконец, приложение должно иметь пользовательский интерфейс? то есть я могу написать фоновое приложение, которое может быть конечной точкой для уведомления?

Что я действительно пытаюсь выяснить, так это то, могу ли я использовать APN на Lion в качестве механизма общего назначения для оповещения моего приложения о необходимости что-либо делать или это просто для доставки предупреждений пользовательского интерфейса?

1 Ответ

0 голосов
/ 13 февраля 2012

Вы можете зарегистрироваться только для уведомлений о значках (NSRemoteNotificationTypeBadge), но вы можете отправить тот же тип полезной нагрузки, что и в iOS, и приложение Mac получит его. До сих пор мне удавалось только запускать фоновые приложения и получать уведомления, но в документах написано:

Mac OS X Примечание. Поскольку поддерживается только один тип уведомлений для не запущенные приложения - значок-значок

Так что кажется, что не работающие приложения должны иметь возможность получать уведомления, но я еще не понял этого.

Вот мое приложение, получающее уведомление в фоновом режиме:

2012-02-13 18:00:39.531 TestPush[25580:707] Received Push Alert: TESTING
2012-02-13 18:00:39.532 TestPush[25580:707] Received Push Badge: 10
2012-02-13 18:00:44.153 TestPush[25580:707] applicationDidResignActive
2012-02-13 18:00:57.233 TestPush[25580:707] remote notification: {
    "_" = "n7dBZFYpEeGiNBT+tdMfCA";
    aps =     {
        alert = TESTING;
        badge = 10;
    };
}

Вот пользовательская полезная нагрузка (пары ключ / значение, которые вы упомянули):

2012-02-13 18:23:44.665 TestPush[25958:707] remote notification: {
    "_" = "zsUPTFYsEeGiNBT+tdMfCA";
    acme1 = bar;
    acme2 = 42;
    aps =     {
        alert = "You got your emails.";
        badge = 9;
        sound = "bingbong.aiff";
    };
}
2012-02-13 18:23:44.666 TestPush[25958:707] Received Push Alert: You got your emails.
2012-02-13 18:23:44.666 TestPush[25958:707] Received Push Sound: bingbong.aiff
2012-02-13 18:23:44.667 TestPush[25958:707] Received Push Badge: 9
2012-02-13 18:23:44.667 TestPush[25958:707] Received cust1: bar
2012-02-13 18:23:44.668 TestPush[25958:707] Received cust2: 42

Не уверен насчет пользовательского интерфейса, я бы не подумал, что вам нужен пользовательский интерфейс.

Также посмотрите этот пример кода от Apple PushyMac .

...