Я делаю приложение, в котором я хочу, чтобы пользователь был уведомлен о чем-то, даже если приложение не запущено. Как и в приложении для водителей Uber, пользователь получает предупреждение о принятии/отклонении запроса на поездку. Возможно ли это с VoIP и PushKit? Как лучше всего это сделать?
Показывать оповещение, даже если приложение не запущено
comment
Вы должны использовать уведомление в iOS. Существует два типа: 1. Удаленное уведомление 2. Локальное уведомление. Посмотрите эту ссылку developer.apple.com/notifications а>
- person Gagan_iOS   schedule 10.05.2017
comment
Вы сами ответили на свой вопрос, да, вам следует использовать push-уведомления. Я предполагаю, что настоящий вопрос, который вы хотите задать, заключается в том, как лучше всего использовать push-уведомления?
- person torinpitchers   schedule 10.05.2017
comment
@Гаган_iOS. Спасибо большое. Push-уведомление — это не то, что мне нужно. Как я уже упоминал, требование такое же, как и в приложении для водителей Uber. Пользователь может видеть предупреждение, даже если приложение даже не запущено, в отличие от обычного push-уведомления.
- person jkdev   schedule 10.05.2017
comment
Вы можете перейти к локальному уведомлению, оно удовлетворит ваши требования. Посмотрите по этой ссылке код локального уведомления . tutsplus.com/tutorials/
- person Gagan_iOS   schedule 10.05.2017
comment
@Gagan_iOS Еще раз спасибо. Я думаю, что PushKit вместе с VoIP может это сделать. developer.apple.com/library/content/samplecode/Speakerbox/ а>.
- person jkdev   schedule 10.05.2017
comment
Да .. вы можете пойти с этим. Это будет ПН для вас
- person Gagan_iOS   schedule 10.05.2017
Ответы (1)
Да, это возможно с автоматическим уведомлением pushkit.
Как только вы получите полезную нагрузку push-kit, вы должны запланировать локальное уведомление.
Вы можете сделать локальное уведомление интерактивным с принятием/отклонением запроса на поездку и выполнять соответствующие действия при касании, такие как вызов API, SQLite и т. д.
См. приведенный ниже код. Я набросал это в соответствии с функцией вызова VOIP, вы можете набросать в соответствии с вашими требованиями.
func pushRegistry(registry: PKPushRegistry!, didReceiveIncomingPushWithPayload payload: PKPushPayload!, forType type: String!) {
// Process the received push
var arrTemp = [NSObject : AnyObject]()
arrTemp = payload.dictionaryPayload
let dict : Dictionary <String, AnyObject> = arrTemp["aps"] as! Dictionary<String, AnyObject>
if "IfUserHasLoggedInWithApp" // Check this flag then only proceed
{
if UIApplication.sharedApplication().applicationState == UIApplicationState.Background || UIApplication.sharedApplication().applicationState == UIApplicationState.Inactive
{
if "CheckForIncomingCall" // Check this flag to know incoming call or something else
{
var strTitle : String = dict["alertTitle"] as? String ?? ""
let strBody : String = dict["alertBody"] as? String ?? ""
strTitle = strTitle + "\n" + strBody
let notificationIncomingCall = UILocalNotification()
notificationIncomingCall.fireDate = NSDate(timeIntervalSinceNow: 1)
notificationIncomingCall.alertBody = strTitle
notificationIncomingCall.alertAction = "Open"
notificationIncomingCall.soundName = "SoundFile.mp3"
notificationIncomingCall.category = dict["category"] as? String ?? ""
notificationIncomingCall.userInfo = "As per payload you receive"
UIApplication.sharedApplication().scheduleLocalNotification(notificationIncomingCall)
}
else
{
// something else
}
}
}
}
Подробнее об интеграции pushkit и полезной нагрузке.
https://github.com/hasyapanchasara/PushKit_SilentPushNotification
person
Hasya
schedule
10.05.2017
Хася Спасибо. Как мы показываем пользовательский интерфейс для локальных уведомлений. Содержание уведомлений Расширения?
- person jkdev; 10.05.2017
Это основано на настройках типа уведомления из настроек устройства. Принять / отклонить эти 2 варианта, которые вы можете использовать, будут все 3 типа.
- person Hasya; 10.05.2017
Можем ли мы иметь обычное push-уведомление вместе с VoIP Push в одном приложении? Я имею в виду, нужно ли нам держать их отдельно?
- person jkdev; 11.10.2017
Да, вы можете получать push-уведомления в приложении с помощью VoIP push. Метод, связанный с VoIP push, переходит к PKPushRegistryDelegate, а push-уведомление имеет свои методы. Оба могут быть обработаны легко.
- person Hasya; 11.10.2017
Большое спасибо!.. Ч/б Должны ли мы сохранять отдельные конфигурации в бэкэнде для обычного push-уведомления и VoIP.. Мой бэкэнд настроен на amazon SNS.? Прямо сейчас у нас есть обычный токен apns для обычной отправки и токен VoIP. Можем ли мы использовать токен VoIP для обычного push? Заранее спасибо.
- person jkdev; 12.10.2017
Да, токен push-уведомления и токен VoiP push-уведомления отличаются. Поэтому вам нужно изменить отдельно и на бэкэнде.
- person Hasya; 12.10.2017
Спасибо за быстрый ответ. Вы имели в виду, что нам нужно сохранить оба токена?
- person jkdev; 12.10.2017
Да, оба токена должны обрабатываться отдельно. Как и в WhatsApp или Skype, есть разные способы push-уведомлений и VOIP.
- person Hasya; 12.10.2017
Можем ли мы предупредить пользователя (например, звонок), пока пользователь не ответит или в течение 30 секунд? заранее спасибо
- person jkdev; 29.10.2017
Да, вы можете предупредить пользователя, как кольцо.
- person Hasya; 30.10.2017
Как мы это делаем, когда приложение находится в фоновом режиме?
- person jkdev; 30.10.2017
Пожалуйста, предложите пример, если есть. Спасибо большое.
- person jkdev; 30.10.2017
Вы можете использовать локальное уведомление, чтобы уведомить (оповестить) пользователя звуковым файлом типа мелодии звонка. Подробнее см. здесь github.com/hasyapanchasara/PushKit_SilentPushNotification, специально написанное для приложения для видео/аудиозвонков на основе VOIP. .
- person Hasya; 30.10.2017
Я хочу, чтобы оповещение оставалось активным в течение 30 секунд или до тех пор, пока пользователь не отреагирует на локальное уведомление. Теперь локальное уведомление запускается один раз, как и удаленное уведомление. Я хочу показать предупреждение, как во вложении к моему исходному вопросу, и держать его в течение 30 секунд. Извините, если я напутал. Я прошел код по вашей ссылке. Но в этом не помогло. Заранее спасибо..
- person jkdev; 30.10.2017
Согласно снимку экрана, прикрепленному к вашему вопросу, просто перейдите к настройкам телефона, уведомлению, выберите приложение, есть различные варианты получения такого оповещения, ничего не связанного с программированием. Ваше изображение и 3-е изображение в моем ответе одинаковы, когда есть 2 варианта, оно выглядит как ваше изображение, а когда есть более 2 вариантов, оно выглядит как 3-е изображение моего ответа. Надеюсь, теперь ты понимаешь.
- person Hasya; 30.10.2017
Спасибо большое. Я думаю, что не смог сообщить о требовании. В любом случае я опубликую еще один вопрос.
- person jkdev; 30.10.2017
Получил отказ из-за того, как VoIP + PushKit используется вышеописанным способом. В любом случае Apple настроила звонок для обсуждения того же. Жду их!
- person jkdev; 11.11.2017