标签: today-extension

今天App扩展小工具点击打开包含应用程序

我为我的应用程序+报价实现了一个Today小部件,它在这些Apple Docs的帮助下在通知中心显示当天的报价.我想要完成的是打开Containing App,在这种情况下是+ Quotes,当用户在他们的Today通知视图中点击+ Quotes小部件时,并不完全确定要调用它的内容,因为Calendar会在今天看.我已经尝试在标签上覆盖一个按钮,该按钮会调用 -(void)openURL:(NSURL *)URL completionHandler:(void (^)(BOOL success))completionHandler 它,然后打开我声明要打开Containing App的自定义URL方案.问题是它没有打开Containing App.

+引用今日应用扩展小部件

-(IBAction)myButton:(id)sender {
    NSURL *customURL = [NSURL URLWithString:@"PositiveQuotes://"];
    [self openURL:customURL completionHandler:nil];
}
Run Code Online (Sandbox Code Playgroud)

ios ios8 ios-app-extension today-extension

58
推荐指数
3
解决办法
4万
查看次数

如何在今天的扩展(iOS)中访问CoreData模型

是否可以像在原始应用程序中那样在swift的今天扩展中使用我的CoreData模型?如果是,我该如何创建NSManagedObjectContext?
我真的不知道,除了group-identifier之外,但不幸的是我不知道如何获取上下文..
过去我创建的应用程序在开头检查我想要使用CoreData然后我得到了managedObjectContext通过我的AppDelegate ..但我怎么能在扩展中做那样的想法?Apple不提供相关信息..

我在AppDelegate中编辑了这一行:

NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"HTWcampus.sqlite"];
Run Code Online (Sandbox Code Playgroud)

对此(在将组包括在两个目标之后):

NSURL *storeURL = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:@"group.BenchR.TodayExtensionSharingDefaults"];
storeURL = [storeURL URLByAppendingPathComponent:@"HTWcampus.sqlite"];
NSLog(@"StoreURL2: %@", storeURL);
Run Code Online (Sandbox Code Playgroud)

有了这个,我的应用程序中的现有数据库就消失了(这很棒,因为我认为将数据库放在共享段中是有效的).

但是如何在扩展中创建我的上下文实例?我怎样才能访问我的NSManagedObject-subclasses?

在扩展中,我有这个代码到目前为止:

var context: NSManagedObjectContext!

override func viewDidLoad() {
    super.viewDidLoad()

    var storeURL = NSFileManager.defaultManager().containerURLForSecurityApplicationGroupIdentifier("group.BenchR.TodayExtensionSharingDefaults")
    storeURL = storeURL?.URLByAppendingPathComponent("HTWcampus.sqlite")
    let modelURL = NSBundle.mainBundle().URLForResource("HTWcampus", withExtension: "momd")
    let model = NSManagedObjectModel(contentsOfURL: modelURL)
    let coordinator = NSPersistentStoreCoordinator(managedObjectModel: model)
    coordinator.addPersistentStoreWithType(NSSQLiteStoreType, configuration: nil, URL: storeURL, options: nil, error: nil)
    context = NSManagedObjectContext()
    context.persistentStoreCoordinator = coordinator
}
Run Code Online (Sandbox Code Playgroud)

这是正确的吗?如果是的话,我怎样才能获得我的NSManagedObject-Subclasses?我是否必须将momd文件添加到扩展目标?如果是的话,我该怎么做?

core-data ios swift ios8 today-extension

37
推荐指数
1
解决办法
2万
查看次数

iOS 8今日扩展的最大高度?

我正在使用动态大小的表格进行今日扩展.我已经能够使用以下内容来调整内容的大小:

    self.preferredContentSize = accountsTable.contentSize
Run Code Online (Sandbox Code Playgroud)

但是,我发现即使我可以告诉表格contentSize更大,它也不会比某个尺寸(568像素)更高.

我不清楚这是否是一个内置限制,或者是否有办法解决这个问题.似乎一些先前的扩展(Stocks小部件)能够变得更大.

其他人遇到同样的行为.任何人都知道是否可以立即使扩展显示更大或使用像Stock小部件一样的"全部显示"按钮?

xcode ios swift ios8 today-extension

30
推荐指数
2
解决办法
9247
查看次数

如何使用Crashlytics与iOS/OS X今天查看扩展?

由于今天扩展程序以一个独立的进程运行,我确信它们不会记录任何崩溃的开箱即用.我假设我们需要分别在小部件上初始化Crashlytics.例如在viewDidLoad方法中TodayViewController.

  • 是否有人在任何iOS/OS X扩展中使用Crashlytics?如果是这样,你是如何实现它的?
  • 我也想知道在Crashlytics中为扩展创建一个单独的应用程序是否有意义.

ios crashlytics osx-extensions today-extension ios-extensions

26
推荐指数
4
解决办法
7191
查看次数

今天Widget tableView冻结了

我有一个今天的小部件包含两件事:

  1. 一个 UILabel
  2. 一个 UITableView

在我的viewWillAppear设置标签是可见的,我的tableView被隐藏,我将标签文本设置为"正在加载".见下图.

然后我得到一个位置,当这个完成后,我调用另一个方法和

  1. 如果我没有找到任何数据,我只需将标签文本更新为"未找到数据"
  2. 否则,我将标签设置为隐藏,并且tableView可见,我开始更新数据

成功完成后,我有一个如下所示的tableView:

.

我现在的问题.
当我打开今天的小部件并点击时viewWillAppear,我并不总是设置我的标签,我得到的唯一结果就是这个

.

所以会发生的事情是我只能在tableView中显示我之前的一些结果.

偶尔会发生这种情况,似乎tableView冻结,我无法更新初始视图,隐藏tableView并显示标签.即使屏幕像这样冻结,一切都在运行,我设法更新tableView和视图.

唯一的问题是当我打开窗口小部件时,屏幕冻结如下:

有时而不是显示我的标签.它的大小原因,是因为我设置了preferredContentSize = CGSizeMake(0, 30).否则我打赌它会显示整个前一个tableView.

有关如何解决此问题的任何想法,以便在我点击时始终更新视图viewWillAppear

更新
开始另一个赏金,看看是否有关于此问题的其他输入.

widget tableview ios swift today-extension

23
推荐指数
1
解决办法
1171
查看次数

新的iOS 10 Today Widget/Extension的高度是多少?

我正在构建一个iOS Today小部件,在测试iOS 10时,我注意到所有小部件现在都被赋予相同的高度(之前的版本允许开发人员设置高度).什么是理想高度/处理这个新限制的最佳做法是什么?我很快,我没有使用autolayout fyi.提前致谢!

objective-c ios swift today-extension ios10

23
推荐指数
2
解决办法
9689
查看次数

在扩展之间共享UserDefaults

创建Today小部件,我UserDefaults(suiteName:)用来保存一些数据.在我正在使用的主要应用程序中UserDefaults.standard().这是扩展无法读取(或可以吗?),这就是我使用suiteName:构造函数的原因.

用户UserDefaults.standard()在主应用中持久保存的数据需要在扩展中可用.

在这个时候,我坚持两者,以便可以共享价值观

 UserDefaults.standard().set:...forKey:...
 UserDefaults(suiteName:...)().set:...forKey:...
 ...
Run Code Online (Sandbox Code Playgroud)

问题是我应该UserDefaults.standard()放在一起,只是UserDefaults(suiteName:)在我的应用程序中使用,或者这是不好的做法,如果是这样,为什么?

编辑:我正在使用App组容器.为了澄清我要问我应该在我的项目中用suiteName替换standard()吗?

swift today-extension userdefaults ios10-today-widget

23
推荐指数
4
解决办法
1万
查看次数

今天Widget扩展高度 - iOS10

无法为紧凑模式设置今日小部件视图模式的高度.无论我设定什么价值.它将窗口小部件的高度设置为默认值.扩展模式工作正常,值正确设置并反映在窗口小部件中.我已经在viewDidLoad()方法中添加了这一行.

self.extensionContext?.widgetLargestAvailableDisplayMode = .expanded
Run Code Online (Sandbox Code Playgroud)

这是代码.maxSize的值不能像常量那样改变.

func widgetActiveDisplayModeDidChange(_ activeDisplayMode: NCWidgetDisplayMode, withMaximumSize maxSize: CGSize) {

        //self.preferredContentSize = (activeDisplayMode == .compact) ? maxSize : CGSize(width: maxSize.width, height: 300)

        if activeDisplayMode == NCWidgetDisplayMode.compact
        {
             self.preferredContentSize = CGSize(width: maxSize.width, height: 300)
        }
        else
        {
            self.preferredContentSize = CGSize(width: maxSize.width, height: 560)
        }
}
Run Code Online (Sandbox Code Playgroud)

ios swift today-extension ios10-today-widget

20
推荐指数
2
解决办法
8853
查看次数

如何在iOS 8中正确确定今日扩展左边距?

我试图找出如何计算今日扩展主视图中的左边距,以将内容与今日视图标签的其余部分对齐.

这是一个使用Today扩展的干净Xcode项目的示例(我已经为视图背景添加了颜色并绘制了一条红色虚线,以说明我想要对齐Hello World的位置UILabel).

iPhone 6 Plus模拟器(左侧横向,右侧纵向)的结果可以从下图中找到:

在此输入图像描述

在图像中,请注意绿色主视图左边界的位置与应用程序名称UILabel"testi2"的位置不同.看起来红线 - 主视图左边界对齐在每个设备中都有所不同:iPhone 5x,iPhone 6和iPad.

可以使用干净的Xcode项目(我正在使用Xcode 6.1.1,iOS 8.1和Swift)重现该行为:

  1. 创建一个空的Xcode项目(单视图应用程序)
  2. 添加新目标:扩展程序>今天扩展程序
  3. 从Today扩展组中,找到MainInterface.storyboard并使主视图背景为绿色,Hello世界UILabel背景为红色: 在此输入图像描述

如何将Hello World UILabel(红色背景)与虚线对齐?或者如何将主视图(绿色背景)与虚线对齐?

iphone ipad ios ios8 today-extension

19
推荐指数
2
解决办法
3578
查看次数

Flutter:是否有可能创建App Widgets(Android)和Today Extensions(iOS)?

我看了一下用于构建移动应用程序的问题.是否有可能在一个颤动的应用程序中创建Widgets(而不是颤动小部件,但App Widgets(Android)和Today Extensions(iOS))?我想这不能用dart完成,但是有没有办法在Java/Swift中实现它们原生并将它们包含在flutter-app中?

谢谢!

android-widget dart today-extension flutter

18
推荐指数
1
解决办法
5941
查看次数