Показать предупреждение, даже если приложение не запущено

введите описание изображения здесь Я делаю приложение, в котором я хочу, чтобы пользователь был уведомлен о чем-то, даже если приложение не запущено. Как и в приложении Uber Driver, пользователь получает предупреждение о принятии / отклонении запроса на поездку. Это возможно с VoIP и PushKit? Какой лучший способ сделать это?

1 ответ

Решение

Да, это возможно с помощью pushkit без уведомления.

После получения полезной нагрузки push-комплекта вам необходимо запланировать локальное уведомление.

Вы можете сделать локальное уведомление интерактивным с помощью запроса на принятие / отклонение запроса и выполнить соответствующие действия для события касания, такие как вызов 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

Другие вопросы по тегам