Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/111.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS在收到推送通知之前执行检查_Ios_Apple Push Notifications_Userlocation - Fatal编程技术网

iOS在收到推送通知之前执行检查

iOS在收到推送通知之前执行检查,ios,apple-push-notifications,userlocation,Ios,Apple Push Notifications,Userlocation,我正在编写一个利用苹果推送通知服务的应用程序。一些推送通知基于用户的位置,仅当用户与对象保持一定距离时才应发送。我不想不断地将用户的位置更新到我的服务器上,并以这种方式进行检查,首先是出于安全原因,其次是为了减少网络使用。当设备收到推送通知时,是否有办法在通知用户之前进行检查,如果不符合条件,则放弃通知?谢谢你的帮助 不,遗憾的是,当应用程序未启动时,如果用户未单击通知,则无法在客户端执行任何代码。您必须在服务器端进行检查,以决定是否发送推送。不,遗憾的是,在应用程序未启动时,如果用户未单击通知

我正在编写一个利用苹果推送通知服务的应用程序。一些推送通知基于用户的位置,仅当用户与对象保持一定距离时才应发送。我不想不断地将用户的位置更新到我的服务器上,并以这种方式进行检查,首先是出于安全原因,其次是为了减少网络使用。当设备收到推送通知时,是否有办法在通知用户之前进行检查,如果不符合条件,则放弃通知?谢谢你的帮助

不,遗憾的是,当应用程序未启动时,如果用户未单击通知,则无法在客户端执行任何代码。您必须在服务器端进行检查,以决定是否发送推送。

不,遗憾的是,在应用程序未启动时,如果用户未单击通知,您无法在客户端执行任何代码。您必须检查服务器端以决定是否发送推送。

在应用程序未运行时收到的推送通知(最典型的情况)超出您的控制范围。一旦发送,它们将被接收并显示给用户(假设用户已授予权限)

如果在应用程序运行时收到推送通知,则您可以控制推送通知

也许您可以使用本地通知(从用户设备生成和接收的通知)来代替。您可以完全控制它们的生成时间

请记住,应用程序中的后台处理是不允许的,除了4件事

  • 位置跟踪(当用户更改地理位置时,您可以订阅触发代码)
  • 警报
  • 演奏音乐
  • IP语音

  • 这些之外的任何内容都不能在后台执行。

    当应用程序未运行时收到的推送通知(最典型的情况)超出了您的控制范围。一旦发送,它们将被接收并显示给用户(假设用户已授予权限)

    如果在应用程序运行时收到推送通知,则您可以控制推送通知

    也许您可以使用本地通知(从用户设备生成和接收的通知)来代替。您可以完全控制它们的生成时间

    请记住,应用程序中的后台处理是不允许的,除了4件事

  • 位置跟踪(当用户更改地理位置时,您可以订阅触发代码)
  • 警报
  • 演奏音乐
  • IP语音

  • 这些之外的任何内容都不能在后台执行。

    从iOS7开始,您的代码可以运行,我引用“大致与用户看到通知的时间相同”:

    多任务增强功能

    使用推送通知通知用户新内容的应用程序 可以在后台获取内容。支持这一点 模式,包括带有远程通知的UIBackgroundModes键 应用程序的Info.plist文件中的值。您还必须实现 应用程序:DidReceiveEmotentification:fetchCompletionHandler: 方法在应用程序委托中

    请参见此处的更多信息:

    在这里:


    我还没有尝试过,但我想知道您是否发送了一个推送通知负载,该负载在“apns”中没有标准的“alert”、“badge”值,但在自定义值中,它仍会调用您的代码,但不会显示推送通知。

    从iOS7开始,您的代码可以运行,我引用,“与用户看到通知的时间大致相同”:

    多任务增强功能

    使用推送通知通知用户新内容的应用程序 可以在后台获取内容。若要支持此 模式,包括带有远程通知的UIBackgroundModes键 应用程序的Info.plist文件中的值。您还必须实现 应用程序:DidReceiveEmotentification:fetchCompletionHandler: 方法在应用程序委托中

    请参见此处的更多信息:

    在这里:


    我还没有尝试过,但我想知道你是否发送了一个推送通知负载,而该负载在“apns”中没有标准的“警报”、“徽章”值“但在自定义值中,它仍会调用您的代码,但不会显示推送通知。

    Dang,这就是我的想法。谢谢你的澄清。该死,我就是这么想的。谢谢你的澄清。