Tag: ios app extension

iOS AppExtension:如何结合NSExtensionActivationRule和NSPredicate

我目前正在开发一个包含共享扩展的iOS应用程序。 我意识到, NSExtensionActivationSupportsImageWithMaxCount键不允许我激活我的共享扩展名.jpeg或.pngurl(“public.image”UTI,kUTTypeImage)在Safari(即imgur链接)下。 如果我切换到NSActivationRule = TRUEPREDICATE,我仍然可以激活并testing我的扩展名,但是对于已发布的应用程序是禁止的。 我填写了一个雷达的情况下,它不是(甚至脸谱,微博等没有激活这个url) 现在,我想将下面的键和“public.image”结合在NSPredicatestring中,如文档所述( https://developer.apple.com/library/ios/documentation/General/Conceptual/ExtensibilityPG/ExtensionScenarios .html#// apple_ref / doc / uid / TP40014214-CH21-SW8 ) 所以我必须把钥匙翻译成UTI 到目前为止,我已经翻译: – NSExtensionActivationSupportsFileWithMaxCount为“public.file-url” kUTTTypeFileURL – NSExtensionActivationSupportsMovieWithMaxCount为“public.movi​​e” kUTTypeMovie – NSExtensionActivationSupportsText为“public.text” kUTTypeText – NSExtensionActivationSupportsWebURLWithMaxCount为“public.url” kUTTypeURL 但我没有findtypes翻译: NSExtensionActivationSupportsWebPageWithMaxCount ,“public.HTML”是kUTTypeHTML? 有人已经在谓词中使用了这个键吗?

ios8扩展和容器应用程序如何共享数据

我无法在iOS 8扩展程序和容器应用程序之间共享数据。 我从开发门户和Xcode设置了组,我的权利plist看起来像: <dict> <key>com.apple.security.application-groups</key> <array> <string>my group id</string> </array> </dict> 在苹果文档build议的解决scheme使用[[NSUserDefaults standardUserDefaults] 不适合我 我已经从这篇文章中尝试了@Santa Claus的解决scheme在应用程序与应用程序组之间进行通信和持久化数据以供使用 [[NSUserDefaults alloc] initWithSuiteName:@"<group identifier>"]; 圣诞老人的解决scheme在模拟器上工作,但不是在我的iPhone 4s上,关于如何使其在真实设备上工作的任何想法? 还是我错过了什么? 一些更新: [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:@"group id"]; 函数返回url,而来自容器应用程序和扩展名的这两个url看起来相同,如“ path / private / var / mobile / Containers / Shared / AppGroup / 3DFB9750-A9F3-4C37-BC3C-0D5BF746B 233” 。 我从容器应用程序在该文件夹内创build了一个json文件,但扩展名在设备上运行时找不到文件夹中的任何文件。 但在模拟器中,它发现它很好,一切正常。

在应用程序扩展中检测方向的最佳方式是什么?

在应用程序扩展中检测设备方向的最佳方法是什么? 我在这里find的解决scheme有着不同的结果: 如何在iOS 8中检测自定义键盘扩展中的方向更改? 获取设备当前方向(应用程序扩展) 我已经看过大小类和UITraitCollection ,发现设备不正确地报告,它是在纵向时,实际上是在景观(不知道这是操作系统错误,或者我不是正确的查询正确的API)。 什么是完成的最佳方法: 首次加载扩展时设备的当前方向 设备将旋转到的方向 设备旋转到的方向 谢谢,

获取设备当前方向(应用程序扩展)

如何在应用程序扩展中获取设备当前的方向,我尝试了下面两种方法,但没有成功。 它总是返回UIDeviceOrientationUnknown [[UIDevice currentDevice] orientation] 它显示红色消息,“共享应用程序”不适用于iOS(应用程序扩展) [[UIApplication sharedApplication] statusBarOrientation]; 我也添加了一个观察者,但没有被调用。 [[NSNotificationCenter defaultCenter] addObserver:self.view selector:@selector(notification_OrientationWillChange:) name:UIApplicationWillChangeStatusBarOrientationNotification object:nil]; – (void)notification_OrientationWillChange:(NSNotification*)n { UIInterfaceOrientation orientation = (UIInterfaceOrientation)[[n.userInfo objectForKey:UIApplicationStatusBarOrientationUserInfoKey] intValue]; if (orientation == UIInterfaceOrientationLandscapeLeft) [self.textDocumentProxy insertText:@"Left"]; if (orientation == UIInterfaceOrientationLandscapeRight) [self.textDocumentProxy insertText:@"Right"]; } 那么现在怎样才能获得当前的设备定位。

从iOS8自定义键盘启动包含应用程序

我想启动我的包含应用程序。 我尝试使用URLscheme。 URLscheme从其他地方启动应用程序 – 所以问题不在那里。 看起来像这个对象是零: self.extensionContext 因此我不能运行这个方法: [self.extensionContext openURL:url completionHandler:nil]; 我可以启动我的应用程序? URL架构在自定义键盘中工作吗? 谢谢!

通过应用程序组在应用程序之间传递和保持数据

iOS 8昨天透露了一个关于应用程序组的新API。 之前分享数据和应用程序之间的通信是一种混乱,我相信这正是应用程序组旨在纠正的。 在我的应用程序中,我启用了应用程序组,并添加了一个新的组,但是我找不到任何有关如何使用它的文档。 文档和API参考仅说明如何添加组。 那么应用程序组真正打算做什么? 是否有任何文件的地方如何使用它?