问题标签 [silentpush]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - 为什么iOS静默推送触发应用程序:didFinishLaunchingWithOptions:当应用程序在后台时
我有一些网络请求,application:didFinishLaunchingWithOptions:
方法中有 15 秒超时。我发现了以下奇怪的情况。
T1:应用按home键进入后台
T2:应用收到静默推送并执行didFinishLaunchingWithOptions:
方法,然后发送请求
T3(> T2 + 15s):用户点击应用图标。T2 中的所有请求都会立即超时。
我的问题是为什么didFinishLaunchingWithOptions
在那种情况下触发以及如何调试(重现这种情况,因为以上都在日志中)。
swift - iOS11 快速静默推送(后台获取,didReceiveRemoteNotification)不再工作
我希望 iOS11 版本能够解决静默推送问题,该问题在 iOS 的最新 beta 和 GM 版本中。
目前我很难理解,为什么我没有收到任何静默推送消息,这实际上应该唤醒我的应用程序以在后台执行一些需要的任务。
在 iOS 10 中,我只使用后台获取功能并在我的 AppDelegate 中实现了“唤醒代码”,如下面的代码。
在 iOS 11 中,注册代码仍然可以正常工作,我的后端也将推送通知发送到 Apple DEV 服务器(沙箱)和 PROD 服务器(生产版本)。不幸的func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void)
是,静默推送通知永远不会调用该函数。
我真的错过了 iOS 11 的内容吗?
ionic-framework - ios11 中的离子静默推送中断?即使 content-available = 1 也会显示空白通知
我似乎在 iOS11 中遇到了回归。我有一个应用程序,它每小时接收一次静默推送通知(带有 的推送通知"content-available": 1
)以刷新自身。它已经工作了多年,没有任何问题。
但是,在 iOS11 更新之后,我的用户开始报告他们每小时都看到没有消息的可见通知 - 例如
我验证了这一点。
- iOS10上的手机。让电话通宵运行 - 没有空白消息。
- 升级到 iOS11无需重新安装应用程序- 空白消息
我加了一个断点,发现在开始运行didReceiveRemoteNotification
之前就显示了通知didReceiveRemoteNotification
的userInfo
参数didReceiveRemoteNotification
是
所以基本上,看起来 iOS11 改变了它确定通知静音并显示以前隐藏在 iOS10 中的通知的方式。
我找不到任何文档表明这种行为应该已经改变,或者新的有效载荷应该是什么样子。有没有其他人看到这个?我正在使用 phonegap-push-plugin 接收通知和 ionic push 发送通知。
ios - 是否可以使用静音推送来唤醒 APP 并接听 VOIP 电话?
如果我的应用程序在后台运行,我可以使用静默推送来唤醒应用程序并接听 VOIP 电话吗?
我使用“jpush”发布了一个静默推送,当我的 idevice 与 Xcode 连接并运行 APP 时,它可以工作。
如果我的 idevice 没有使用 Xcode 运行 APP,我将无法在后台接收静默推送(仅在前台接收。)
是否可以使用无声推送唤醒APP并接听VOIP电话?
我是不是搞错了什么??
ios - 静默通知是否需要询问用户通知权限?
我想向我的 tvOS 应用程序发送静默通知。这是否需要向用户询问通知权限?或者仅仅注册远程通知并在 Info.plist 中启用匹配的应用程序功能就足够了吗?
ios - 后台未收到静默 iCloud 更改通知
我的应用程序使用一个使用推送通知同步的公共 iCloud 数据库。
订阅 iCloud 通知使用以下内容notificationInfo
:
测试设置使用 2 个 iOS 设备:
- 第一个设备使用我的应用程序来修改 iCloud 数据库。
- 第二台设备在前台或(屏幕关闭)后台模式下运行我的应用程序。这是在 Xcode 控制下完成的,因此我可以设置断点。我的应用程序的系统设置/通知:允许通知,显示在通知中心和锁定屏幕中。
第一次测试:
第二台设备:在前台执行我的应用程序。
当第一个设备修改数据库时,会收到通知
这正如预期的那样。
第二次测试:
第二台设备:如上,但现在屏幕已关闭,即我的应用程序在后台。
当第一个设备修改数据库时,会收到通知。
预期行为:
由于在通知信息shouldSendContentAvailable
中设置为,系统应该唤醒我的应用程序(请参阅文档)。然后应该为应用程序提供后台执行时间以下载与推送通知相关的任何数据,例如更改的记录集。这应该通过调用来完成 true
实际行为:
锁定屏幕中显示一条警报,提示“iCloud 已更改,滑动打开”。如果我刷这个警报并解锁设备,那么这个函数才会真正被调用。
我的问题:
我想使用来自 iCloud 的静默推送来更新我的应用程序的本地数据。那么为什么在锁定屏幕上显示默认消息正文“iCloud changed”的警报,尽管我设置了shouldSendContentAvailable = true
?
ios - VoIP、PushKit 和应用程序唤醒
我正在使用 PushKit 和 CallKit 开发一个 VoIP 应用程序。我知道类似的问题在不同的论坛上经常被问到,但不幸的是从未真正得到回答。此外,这些帖子中的大多数都来自 2015 年左右,所以我认为很有可能已经发生了很多变化,因为有人可能已经想到了如何让它发挥作用。
什么工作:
当应用程序在前台运行或发送到后台时,它使用沙盒服务器以及生产服务器接收推送通知。
我在 iOS 11 和 Xcode 9 上,需要在“功能”中启用常规推送通知,以及手动将 voip 背景模式添加到 info.plist 以调用委托方法。单独连接 CallKit 和 PushKit 不足以接收通知。我还启用了后台音频、后台获取和远程通知。在进行推送注册表注册之前,我还创建了一个后台任务,并在收到推送令牌后结束该任务。
什么不起作用:
重启后唤醒应用程序或强制退出来电。
我在 Instruments 活动监视器中看到来电启动的过程,但看起来有些东西从那里不起作用,因为我没有收到来电 ui。
问题:
- 当应用程序未运行时,传入通知的入口点是什么?
-pushRegistry:didReceiveIncomingPushWithPayload:forType:
或者也许(仅)-application:didFinishLaunchingWithOptions:
? - 我存储了我的凭据以在钥匙串中向服务器注册。是否有可能在应用程序启动期间查询钥匙串为时过早?
更新:
自己想出了一个解决方案。这更像是客户端和服务器之间的时间问题。所以这对我有用。
- 从启动应用程序的服务器发送推送
- 收到推送后,给应用程序一些时间在 sip 服务器上启动和重新注册
- 使用最新的注册信息向客户端发送邀请
同样重要的是不要过早调用推送通知委托上的完成处理程序,这将使应用程序重新进入睡眠状态并且永远不会收到邀请。
也可能会有所帮助,并且可以使场景更加宽容。如果您的 sip 服务器多次发送邀请,请确保在每个服务器上始终使用最新的注册信息。意思.. 假设第一个 INVITE 发送得太早了一些过时的注册信息,客户端仍然启动尝试更新服务器上的信息......确保下一个使用更新的信息。一些 sip 服务器只使用每次迭代可用的第一个信息。因此,您将永远等待而不会在客户端上收到任何东西。
ios - iOS Firebase 推送消息未收到
我一直在集成 Firebase 推送通知。(静默消息)当应用程序处于前台状态时,我可以接收数据消息。但是当应用程序处于后台和关闭状态时,我无法收到任何消息。我想在接收器处于关闭状态时接收和处理消息。如果我从关闭状态打开应用程序时可以收到未处理的消息,那就没问题了。但刚才我只能收到处于前台状态的应用程序。如果我关闭应用程序并发送消息。然后打开应用程序然后不会收到任何消息。几个月前,我确认当我从关闭状态打开应用程序时会收到消息,但现在不是。我试图在几天内修复它。但仍然没有找到任何解决方案。我该如何解决?
我使用数据消息,而不是推送通知并使用 Swift 3。
谢谢你。
ios - 信息亭模式下的无声推送
我有一台安装了少量应用程序的受监督设备。我将设备更改为 Kiosk 模式以运行 Web 浏览器应用程序。现在,当设备处于 kiosk 模式时,我使用以下有效负载将静默通知推送到设备上的另一个应用程序: { "aps" : { "content-available" : 1 }, "message" : "newmessage" }
在这种情况下会发生什么?信息亭模式是否允许任何其他应用程序接收静默推送?
android - 当该应用的通知关闭时,在 Android 上接收 Firebase 静默通知
我正在开发带有 Firebase 推送通知的离线事件记录系统。我已经实现了静默推送,即使该应用程序的通知已关闭,它也可以在 IOS 上运行。android 是否会像 IOS 一样,不管用户设置如何,都会收到静默通知?