OStack程序员社区-中国程序员成长平台

标题: IOS远程静音通知在电话/网络波动期间不起作用 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 03:27
标题: IOS远程静音通知在电话/网络波动期间不起作用

我正在开发我正在做后台工作的 iOS 应用程序。我通过发送静默通知来唤醒应用程序。代码大部分时间都运行良好。

问题是在通话过程中应用没有唤醒,即使在低网络连接或网络波动期间应用也没有唤醒。

我正在做以下事情:

1: Enabled 2 background mode
   i) Background fetch.
   ii)Remote notification. 

2: Sending notification as:

   { 
  aps: {
          content-available: 1,
          sound: ""
          message:"background fetch"
       }
    } 

and 
3)
-(void)applicationUIApplication *)application didReceiveRemoteNotificationNSDictionary *)userInfo fetchCompletionHandlervoid (^)(UIBackgroundFetchResult))completionHandler{
     UALogFull(@"\n\n BACKGROUND NOTIFICATION \n\n\n");
     completionHandler(UIBackgroundFetchResultNewData);

}

我的观察是: 该应用程序没有崩溃。 即使在通话期间有通知(手机已连接wifi),它也不会记录“后台通知”。

请告诉我如何获得准确性?



Best Answer-推荐答案


我相信仅仅因为您发送的是静默通知,并不意味着应用程序会立即收到通知。

根据我使用 GSM iPhone 的观察结果。每当我打电话时,蜂窝数据类型都会掉线,例如LTE -> 3G, 3G -> EDGE etc. 所以数据网络不可靠。

您还声明在网络波动期间不会发生这种情况,系统已收到通知,并没有出于省电目的将其传递。蜂窝数据连接越慢,电池消耗越多。

关于 wifi 上的电话,仍然没有收到静音通知。蜂窝芯片正在运行,同时使用 wifi 会更加消耗电池。

据我了解,静默通知是让设备知道有新数据可用。因为在后台下载该数据的窗口是一个小窗口,在某些情况下可能不适合您描述的示例,这基本上是原因。

打电话时 -> 蜂窝芯片正在用于语音传输。数据传输是芯片要做的额外工作,这可能会极大地影响电池生命周期。

网络波动 -> 系统无法保证可靠的连接以允许下载数据。此外,处于数据速度较慢的区域也会对试图定位更强、更稳定的连接频段的蜂窝芯片造成额外的压力。

静默通知允许您的应用在用户切换回您的应用时向用户呈现新数据,作为对用户的好处,他们不必等待新内容的时间太长。但这不是应用程序功能的重要组成部分。系统还将根据其他因素(例如自上次发布以来的时间)确定是否传递您的通知。关闭太快或关闭应用很长时间可能意味着您的应用不会获得优先权,而必须等待其他应用,

太快了:内容还比较新鲜。 长时间:用户不经常使用该应用程序。节省资源。

混入这种启动模式。如果您在用户更有可能根据之前的模式启动您的应用时发送通知,则您更有可能收到通知。

最后引用文档:

Important: Delivery of notifications is a “best effort”, not guaranteed. It is not intended to deliver data to your app, only to notify the user that there is new data available.

Found Here

关于IOS远程静音通知在电话/网络波动期间不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26996401/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4