我需要检查自定义键盘扩展的完全访问权限。我找到了此链接。
它说我们可以检查App组。我有一个名为“ group.TTT.TGroup”的应用程序组。它在主应用程序和自定义键盘之间共享访问权限。
然后,我这样检查。问题是我总是可以访问它(总是有array或error = null)。是因为我共享相同的数据吗?但是,如果我的应用程序使用另一个应用程序组,而扩展程序使用另一个应用程序组,则我绝对不能访问它。我可以知道怎么做吗?
NSFileManager* fileManager = [NSFileManager defaultManager];
NSString *path = [fileManager containerURLForSecurityApplicationGroupIdentifier:@"group.TTT.TGroup"].path;
NSError *error;
NSArray *arr = [fileManager contentsOfDirectoryAtPath:path error:&error];
NSLog(@" arr is %@",arr);
if (arr == nil || !arr) //can check error also
accessOn = NO;
else accessOn = YES;
Run Code Online (Sandbox Code Playgroud) objective-c ios8 ios-app-extension ios-app-group custom-keyboard
我正在为我的应用程序实现iOS Share Extension,并且我希望能够将任何类型的文件添加到我的应用程序扩展中(例如,从Dropbox共享的任何类型的二进制文件)。
我该如何实现这种行为?loadItemForTypeIdentifier:options:completionHandler:期望使用UTI,我尝试提供一个空字符串,但是没有用。
iOS Action Extension 示例代码似乎不起作用。
在 xCode 中,我创建一个新的 Swift 项目并选择 Single View Application。
然后我选择“文件”>“新建”>“目标”,然后选择“操作扩展”。我输入名称,选择 Swift,然后选择操作类型:无用户界面
然后我通过运行项目并选择 Safari 来测试扩展。我导航到 Google 网站。
我通过 Safari 中的“操作”图标启用该扩展。然后我按扩展图标在 Safari 中运行它,但没有任何反应。
我希望网页背景颜色发生变化,因为应该运行的 Action.js 代码设置背景颜色: document.body.style.background= "blue"
就好像 Action.js 代码永远不会被调用。 所有代码均来自默认的 Action Extension 模板,并且未进行任何修改。
信息表
<key>NSExtension</key>
<dict>
<key>NSExtensionAttributes</key>
<dict>
<key>NSExtensionActivationRule</key>
<dict>
<key>NSExtensionActivationSupportsFileWithMaxCount</key>
<integer>0</integer>
<key>NSExtensionActivationSupportsImageWithMaxCount</key>
<integer>0</integer>
<key>NSExtensionActivationSupportsMovieWithMaxCount</key>
<integer>0</integer>
<key>NSExtensionActivationSupportsText</key>
<false/>
<key>NSExtensionActivationSupportsWebPageWithMaxCount</key>
<integer>1</integer>
</dict>
<key>NSExtensionJavaScriptPreprocessingFile</key>
<string>Action</string>
</dict>
<key>NSExtensionPointIdentifier</key>
<string>com.apple.services</string>
<key>NSExtensionPrincipalClass</key>
<string>$(PRODUCT_MODULE_NAME).ActionRequestHandler</string>
</dict>
Run Code Online (Sandbox Code Playgroud) iOS 10中添加了一个新API,用于显示用户可以切换到的其他键盘列表 - 用户在系统键盘上长按地球仪时显示的相同列表.该功能的声明如下:
func handleInputModeList(from view: UIView, with event: UIEvent)
我的问题是,生成UIEvent供应的正确方法是什么?我打算用a来调用这个函数,UILongPressGestureRecognizer但这个API没有透露UIEvents.
我正在寻找导入PDF的可能性,以便用它做一些进一步的任务,就像本课题中所述:将PDF文件导入到app
经过两天的互联网浏览后,我发现行动扩展可能是解决方案,这是我得到了多远:
override func viewDidLoad() {
super.viewDidLoad()
let fileItem = self.extensionContext!.inputItems.first as! NSExtensionItem
let textItemProvider = fileItem.attachments!.first as! NSItemProvider
let identifier = kUTTypePDF as String
if textItemProvider.hasItemConformingToTypeIdentifier(identifier) {
textItemProvider.loadItemForTypeIdentifier(identifier, options: nil, completionHandler: handleCompletion)
}
}
func handleCompletion(pdfFile: NSSecureCoding?, error: NSError!) {
print("PDF loaded - What to do now?")
}
Run Code Online (Sandbox Code Playgroud)
正确调用完成处理程序,因此我假设PDF已加载 - 但我现在不知道如何继续.如果动作扩展只处理图像或文本,它可以轻松下载,但使用我知道的文件的唯一方法是路径名 - 我没有,也不知道如何获取.另外,我非常确定Sandboxing也是派对的一部分.
我想我只需要向正确的方向推进哪个类或协议可能适合我的需要 - 任何建议都高度赞赏.
我已经充分开发利用网站php和mysql,现在我想建立一个ios对网站的应用程序,我怀疑是否有可能使用相同的php编码,phonegap或xcode开发一个应用程序的ios?