Tag: ios8 today widget

在今天的扩展中使用AppDelegate

我正在尝试为我的应用程序构build一个今天的扩展。 我正在使用CoreData和CoreData并得到以下错误: 使用未声明的types'AppDelegate' 在这行代码中: var appDel: AppDelegate = UIApplication.sharedApplication().delegate as AppDelegate. 有人知道如何解决这个错误/在今天的扩展使用AppDelegate,并想帮助我吗?

当主应用程序更新时,今天的扩展部件会冻结

主应用程序更新时,我受到Today Extension冻结问题的困扰。 详细地说,我最近发现Today Extension从Crashlytics Beta服务更新主应用程序后会冻结。 之后,所有可触摸的东西,如button不起作用。 我试图通过设置“今日”支持的菜单重新安装小部件,但失败了。 解决此症状的唯一方法是重新启动iPhone设备。 但是,你知道这不是合适的解决scheme。 什么让更新主应用程序后,该部件冻结?

iOs小工具后台更新

根据苹果关于widgetPerformUpdateWithCompletionHandler的说法,iOs Widget也可以在小部件不可见时更新他的内容。 在我的debugging会话中,我注意到todayViewController被释放,每当通知中心视图消失,所以我的问题是: 如果我的todayViewController如果被释放,可以如何响应widgetPerfomrUpdateWithComplationHandler? 我需要每小时更新他的内容,如果它不可见,我怎么做? iOs小部件生命周期如何? 请帮助我:)谢谢

检测运行目标是应用程序扩展还是iOS应用程序

我有一个简单的应用程序,也有一个iOS 8的今天扩展(或小工具)。 我正在做的事情之一是在我的应用程序和我的小部件之间共享代码类,因为显然这使我不必拥有相同代码的多个副本。 这一切工作得很好,除了我有一个问题,其中一个API UIApplication sharedApplication提出了一个错误,因为你不能使用iOS 8的Widgets。 所以我在想的是有一个简单的if语句来检查最终目标是本地应用程序还是iOS 8窗口小部件,然后根据需要添加代码。 这会工作吗? 这是我的代码: if (UIInterfaceOrientationIsLandscape([[UIApplication sharedApplication] statusBarOrientation])) { CGSize ssz = sz; sz = CGSizeMake(ssz.height, ssz.width); } 如何更改此代码,以便可以执行下列操作之一: 只有运行/编译如果最终目标是本机iOS应用程序,而不是一个小部件。 或者检查该API是否在目标平台上可用,如果是,则使用它? 我希望我的问题对你的时间有意义和感谢,Dan。

从“今天”扩展中调度本地通知

我正在制作一个包含Today Extension的应用程序。 今天的扩展显示了一个定时器的列表,如果用户select一个定时器,我想为该定时器创build和安排本地通知。 我的问题是通知的安排是用这行代码完成的: UIApplication.sharedApplication().scheduleLocalNotification(notification) 这非常不幸地依赖于UIApplication.sharedApplication() ,它不能从扩展中访问。 所以我的问题是: 我怎样才能从一个今天延长安排一个本地通知? 有趣的是,我可以用我的应用程序和我的扩展之间的代码共享一个框架,在这个框架中,我可以调用: func schedule() { // … let settings = UIUserNotificationSettings(forTypes: .Sound | .Alert, categories: nil) UIApplication.sharedApplication().registerUserNotificationSettings(settings) // … UIApplication.sharedApplication().scheduleLocalNotification(notification) // … } 如果我然后从我的扩展中导入该框架,并调用schedule()我得到这个输出: Failed to inherit CoreMedia permissions from 13636: (null) Attempting to schedule a local notification <UIConcreteLocalNotification: 0x7feaf3657a00>{fire date = Saturday, November 1, 2014 at […]

从Notification Center启动应用程序时出现奇怪的崩溃

我在我的智慧结束,我得到一个奇怪的崩溃,只发生在通知中心启动应用程序时。 在本地通知(在通知方)或者对extensionContext的调用:openURL:completionHandler(来自我的“今日”小部件)将使用customURLscheme启动应用程序。 当应用程序运行(热启动),没有问题,工作就像广告。 当我杀死应用程序(在任务切换器),然后尝试通过通知中心启动它(冷启动),我得到下面的崩溃报告。 我寻找任何东西的低和高,找不到它。 这只发生在iOS8设备上,iOS7设备没有问题(随着通知启动,显然没有今日小部件) 有没有人看过这个? 谢谢! Date/Time: 2014-10-14 18:16:39.924 -0400 Launch Time: 2014-10-14 18:16:38.667 -0400 OS Version: iOS 8.0.2 (12A405) Report Version: 105 Exception Type: EXC_BAD_ACCESS (SIGSEGV) Exception Subtype: KERN_INVALID_ADDRESS at 0x000000016a4cbeb8 Triggered by Thread: 0 Thread 0 name: Dispatch queue: com.apple.main-thread Thread 0 Crashed: 0 libobjc.A.dylib 0x0000000195ebbbd0 objc_msgSend + 16 1 UIKit […]

重绘时,“今日分机”视图闪烁

根据苹果的文档,“为了帮助你的小部件看起来更新,系统偶尔捕获小部件视图的快照,当小部件再次可见时,显示最近的快照,直到系统用视图的实时版本replace它“。 但是,我所看到的是,在准备好实时视图之前快照已从屏幕上移除。 这将导致闪屏效果,旧快照从屏幕上移开,视图在一瞬间空白,然后出现新视图。 开发人员是否负责快照和实时视图之间的过渡? 如果是的话,那么这样做的策略是什么? 我看不出有什么办法可以直接控制这个转变。 通过将数据加载到widgetPerformUpdateWithCompletionHandler:并保持绘图在viewWillAppear:中,我能够大大减轻这种影响,但是我仍然在通知中心每15(或大约)打开一次闪光灯。

NSUserDefaultsDidChangeNotification和Today Extensions

我正在开发一个带有Today Extension的iPhone应用程序。 该应用程序有一个模型模块,从/加载到NSUserDefaults。 由于我希望这个信息可以被主应用程序和扩展使用,我使用一个应用程序组: let storage = NSUserDefaults(suiteName: "group.etc.etc.etc…") 应用程序和扩展程序都可以访问信息,没有任何问题。 主应用程序偶尔会创build一个本地通知来呈现给用户。 该通知有两个与之相关的操作(UIUserNotificationAction)。 其中一个动作触发主应用程序的背景上运行一些代码。 该代码更改NSUserDefaults信息并触发同步。 我的代码是这样的: func application(application: UIApplication, handleActionWithIdentifier id: String?, forLocalNotification not: UILocalNotification, completionHandler: () -> ()) { // Interact with model here // New information gets saved to NSUserDefaults userDefaultsStorage.synchronize() completionHandler() } 现在,在今天分机。 我自然地观察到对NSUserDefaults上的信息所做的任何更改,以便我可以重新加载小部件上的接口: override func viewDidLoad() { super.viewDidLoad() // … NSNotificationCenter.defaultCenter().addObserverForName(NSUserDefaultsDidChangeNotification, object: […]