Titanium mobile / Apple Push уведомления Куда логичнее всего вставить callback

Вопрос,

Чего я хочу добиться, так это иметь централизованное место для получения уведомлений, поэтому независимо от того, в каком окне или вкладке находится пользователь, уведомление будет получено, а функции обратного вызова будут запущены.

Если проект в значительной степени зависит от push-уведомлений Apple, что (в Titanium Mobile) будет лучшим местом для вставки кода для запросов уведомлений и обратного вызова.

Я думал, что это произойдет автоматически, но это не так, в настоящее время у меня есть registerForPushNotifications, помещенный в файл, который включен в каждое окно и вкладку. Но если push-уведомление отправлено, оно будет получено на каждой вкладке, но если я перейду на вкладку, уведомление снова будет получено.

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


person Vincent Cohen    schedule 09.01.2013    source источник


Ответы (2)


Основываясь на том, что вы сказали о своем коде, у вас возникли проблемы, потому что у вас есть несколько контекстов выполнения (т. е. каждая вкладка имеет окно со свойством url для другого файла JavaScript). Вместо того, чтобы использовать несколько контекстов, загрузите окна в одном контексте (используя как минимум CommonJS, а оптимально Alloy). Затем вы можете зарегистрировать свой обратный вызов в app.js или в модуле CommonJS, вызываемом из вашего app.js. Ваша проблема не существовала бы в этом сценарии.

person Dawson Toth    schedule 10.01.2013
comment
Вы правы, я ошибся. Изначально я хотел, чтобы push-уведомления запускались после входа пользователя в систему, поэтому я поместил код в окно после входа в систему. Я не использовал CommonJS, вы бы порекомендовали использовать его в небольших проектах? - person Vincent Cohen; 10.01.2013
comment
Я бы рекомендовал использовать его в любом проекте. :) Вот ссылка на сообщение в блоге: developer.appcelerator.com/blog/2011/12/ и вот что я только что сделал для вас, чтобы помочь вам начать работу: gist.github.com/4503143 - person Dawson Toth; 10.01.2013
comment
Спасибо за ваши усилия! Я пытался найти хорошие примеры, но это определенно лучший! - person Vincent Cohen; 11.01.2013
comment
на ваш взгляд с Titanium Mobile 3.0. Вы бы сказали Alloy или CommonJS? Сейчас я использую Titanium Mobile 2.x.x. Я собираюсь обновить его до версии 3.0 для будущих проектов. - person Vincent Cohen; 14.01.2013
comment
Alloy построен на основе CommonJS. Важно понимать оба. - person Dawson Toth; 14.01.2013
comment
Спасибо за ваш ответ, я изучу оба для дальнейших проектов, но сначала это! - person Vincent Cohen; 14.01.2013

если вы используете push-уведомления с ACS, см. здесь http://developer.appcelerator.com/question/135751/acs---push-notifications---tutorial

больше информации здесь

http://blog.teemusk.com/2012/05/building-server-push-notifications-with-appcelerator-titanium-cloud/

person Aaron Saunders    schedule 09.01.2013