iOS 报亭:推送通知不会在后台启动应用程序

2023-12-27

我正在应用程序中实现报刊亭功能,尽管应用程序收到推送通知,但它不会在后台模式下启动。
如果我点击通知警报,应用程序将启动,我可以看到字典中存在“content-available”:1,并且该问题已下载,但应用程序不会自动启动。

我已添加到 plist 中:

<key>UIBackgroundModes</key>
<array>
    <string>newsstand-content</string>
</array>

并执行 didFinishLaunchingWithOptions:

[[NSUserDefaults standardUserDefaults]setBool: YES forKey:@"NKDontThrottleNewsstandContentNotifications"]; // for testing purposes
    [[NSUserDefaults standardUserDefaults] synchronize];

[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeNewsstandContentAvailability )];

我还发现我的应用程序未显示在“设置”->“商店”->“自动下载”下(其他杂志也显示在那里)。

我错过了什么吗?这应该在沙箱环境中工作吗?


一些澄清

  1. 如果您没有在报亭负载中发送“警报” 其中只有 content-available:1 ,不会添加任何内容 通知中心。
  2. 报亭通知启动应用程序并不意味着该应用程序将进入前台(就像用户点击应用程序图标一样)。这只是意味着,如果应用程序不在后台,它将由 iOS 在后台启动 -> 调用 appDelegate 的 didFinishLaunchingWithOptions,其中应用程序应检查它是否是报亭通知,以通过在报亭队列中添加资源来安排下载。资产路径可以是 NS 有效负载的一部分(前提是

NSDictionary *payload = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];

if(payload && [[payload objectForKey:kContentAvailablePush] caseInsensitiveCompare:@"1"] == NSOrderedSame) { NSLog(@"由于 NS 通知而启动"); }

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iOS 报亭:推送通知不会在后台启动应用程序 的相关文章

  • 带有 HTML 的 UIActivityViewController

    当我将包含 HTML 内容的字符串作为数组元素传递给UIActivityViewController initWithActivityItems方法中 它不会在选定的 共享 控制器中将其呈现为 HTML 而是呈现 HTML 源 即标记而不是
  • 何时使用 takeUnretainedValue() 或 takeRetainedValue() 来检索 Swift 中的非托管对象?

    根据将 Swift 与 Cocoa 和 Objective C 结合使用 https developer apple com library prerelease ios documentation Swift Conceptual Bui
  • Cordova 构建 iOS 应用程序并打开模拟器,但未安装

    我正在 MacOS 上用 Cordova 制作一个 iOS 应用程序 当我跑步时cordova emulate ios该应用程序会构建并打开 iPhone X iOS 11 4 的模拟器 但它从未在模拟器中安装该应用程序 它仅显示模拟器主屏
  • MVVM 在 iOS 中的使用

    我是一名 iOS 开发人员 我对我的项目中存在大量视图控制器感到内疚 因此我一直在寻找更好的方法来构建我的项目 并遇到了 MVVM 模型 视图 视图模型 架构 我读了很多关于 iOS 的 MVVM 文章 但有几个问题 我将用一个例子来解释我
  • iOS 框架问题:类在两者中均实现

    我正在开发一个使用第三方框架类的iOS框架项目 所以我在下面添加了第三方框架链接的框架和库部分 当我在 iOS 应用程序项目中添加自定义框架时 每个类都会收到此警告 objc 3139 类 class name 在两者中均实现 privat
  • iOS Javascript 引擎 parseFloat(1) 返回负数

    这段代码将使错误出现 function causeBug d var k var n parseFloat 1 var c Math abs d if n lt 0 k else k return k n function for var
  • 不同形状的图像拼贴

    我对照片编辑应用程序开发完全陌生 我如何开发这样的网格样式 以便我可以添加从相机胶卷中选取的多个图像来创建拼贴画 我浏览了下面的链接 但没有找到实现这一目标的方法 任何建议或链接都 会有帮助 LINK1 https stackoverflo
  • 如何垂直对齐 UICollectionView 中的 UICollectionViewCells?

    我在水平滚动时有不同高度的单元格UICollectionView似乎垂直均匀地分布单元格 在单元格之间留下空白空间 我想将它们顶部对齐 并在每列的底部有可变的空白空间 我将提供的 UICollectionViewFlowLayout 扩展到
  • 自定义结构:类型不符合“可解码”协议

    我希望能够保存一个Custom struct to UserDefaults但为此我需要它Codable 我尝试过这样的 struct Wishlist Codable var name String var image UIImage v
  • 智能排序 Localized.strings 文件

    In my Localizable Strings我尝试按字母顺序排列所有对 是否可以按字母顺序重新排序我的Localizable strings 也许使用 genstring 或特殊的 bash 脚本 在这里我还有额外的要求需要完成 1
  • NSAttributedString - 获取字体属性

    我需要获取有关我的属性字符串的信息 但不知道如何获取 我得到这本词典 2013 11 04 18 06 10 628 App 1895 60b NSColor UIDeviceWhiteColorSpace 0 3 1 NSFont
  • Swift 中的“is”关键字

    据我所知 似乎共识是is在 Swift 关键字中是同义词isKindOfClass method 但是 我在执行以下操作时遇到困难 inside of a method in UITabViewController check if the
  • 加快故事板打开速度

    当我打开 Storyboard 文件时 由于其中包含 VC 的数量 需要 1 2 分钟才能打开 加快速度的最佳做法是什么 我们是否应该将一些 VC 移动到不同的故事板文件中 我们是否应该使用更多的 xib 文件来减少 VC 中的元素数量 对
  • 创建 UITextView 全部内容的位图

    我正在尝试获取 UITextView 内容的位图 我可以通过以下方式获取当前屏幕上 UITextView 内容的位图 UIGraphicsBeginImageContext myTextView bounds size myTextView
  • 如何通过触摸按钮在 swift 2 中播放 m4a 文件?

    当我触摸按钮时 如何播放音频文件 我在网上找不到任何东西 因为它都是 swift 1 我想要音频代码original功能 import UIKit import AVFoundation class ViewController UIVie
  • Cordova - 已弃用尝试访问非导航器对象上的属性“userAgent”

    我正在尝试让我的 Cordova iPhone 应用程序在 iOS 8 1 中运行 在 7 中工作正常 从 8 开始出现以下错误 Deprecated attempt to access property userAgent on a no
  • 使用 Firebase/Analytics pod 时 SwiftUI 预览不起作用

    似乎在将 Xcode 12 更新到 beta 5 后 使用 Firebase Analytics pod 时 SwiftUI 预览不再工作 预览失败并出现错误 linker command failed with exit code 1 u
  • 在 iOS 中将一个或多个格式化程序与页面渲染器一起使用

    有没有人尝试过使用多个格式化程序 UIViewPrintFormatter UIMarkupTextPrintFormatter UISimpleTextPrintFormatter 与页面渲染器 UIPrintPageRenderer 打
  • 在 iOS Swift 中将 NSDate 转换为字符串 [重复]

    这个问题在这里已经有答案了 我正在尝试转换NSDate to a String然后更改格式 但当我经过NSDate to String它正在产生空白 let formatter DateFormatter let myString Stri
  • iPhone 和服务器上的 3DES 加密不同

    我有以下代码用于加密发送到服务器的请求 服务器上的解码由 NET 完成 在 iPhone 上 我使用带有以下代码的安全框架 NSString doCipher NSString plainText CCOperation encryptOr

随机推荐