我想在Apple的地图上添加分享扩展,有谁知道怎么做.我尝试将NSExtensionAttributes设置如下,但它不起作用,我的APP没有显示在地图的共享表中.
NSExtensionAttributes
NSExtensionActivationRule
NSExetnsionActivationSupportsWebURLWithMaxCount
NSExetnsionActivationSupportsWebPageWithMaxCount
Run Code Online (Sandbox Code Playgroud) 加载共享扩展程序后,并非每次都加载,并且不会立即显示所有内容.最常见的是,您可以看到图像,图像数量和内容文本.但是,有些情况会有更多的信息.
我知道SLComposeServiceViewController
那里有extensionContext
它的inputItems
财产.
好的,所以我及时停止了调试器,并使用以下命令在控制台上打印出一些东西:
Run Code Online (Sandbox Code Playgroud)po (extensionContext!.inputItems[0] as! NSExtensionItem).userInfo![NSExtensionItemAttachmentsKey]
首先有两个NSItemProvider
对象作为附件NSExtensionItem
好的,然后我打印出第一个附件:
NSItemProvider
从下一个获取该图像和网址?你能提供一些代码吗?我想我们会用
loadItemForTypeIdentifier(_:options:completionHandler:)
Run Code Online (Sandbox Code Playgroud)
但不知道怎么做.
这可能有些愚蠢,但是我NSExtension
为我的应用实现了此共享,该应用具有内置的自定义UI MainInterface.storyboard
(已附加图像)。现在的问题是,我如何退出呢?
我试过了:
[self.navigationController popViewControllerAnimated:YES];
[self dismissViewControllerAnimated:YES completion:nil];
[self.presentingViewController dismissViewControllerAnimated:YES completion:nil];
..但是它不起作用;
我退出它的唯一方法是:
我想念什么?
谢谢。
我正在处理并且Share extension
我有一个与此相关的查询。
是否有可能打开共享扩展全视图控制器,还可以再加UITableView
或其他IBoutlet
使用Storyboard
中Share extension
。
提前致谢
我希望能够共享选定的文本,但我的扩展程序仅在单击共享图标时出现(然后它会用页面标题填充该字段)。我希望我的扩展程序在用户选择文本并单击“共享...”(如下图所示)时出现,然后我希望它用选定的文本填充文本区域。
共享视图控制器:
override func viewDidLoad() {
super.viewDidLoad()
customPopup()
let extensionItem = extensionContext?.inputItems.first as! NSExtensionItem
let itemProvider = extensionItem.attachments?.first as! NSItemProvider
let propertyList = String(kUTTypePropertyList)
if itemProvider.hasItemConformingToTypeIdentifier(propertyList) {
itemProvider.loadItem(forTypeIdentifier: propertyList, options: nil, completionHandler: { (item, error) -> Void in
guard let dictionary = item as? NSDictionary else { return }
OperationQueue.main.addOperation {
if let results = dictionary[NSExtensionJavaScriptPreprocessingResultsKey] as? NSDictionary {
print("RESULTS: \n", results)
}
}
})
} else {
print("error")
}
}
Run Code Online (Sandbox Code Playgroud)
Action.js(JS 预处理)
var MyPreprocessor = function() {};
MyPreprocessor.prototype = …
Run Code Online (Sandbox Code Playgroud) 我正在为我的应用程序实现iOS Share Extension,并且我希望能够将任何类型的文件添加到我的应用程序扩展中(例如,从Dropbox共享的任何类型的二进制文件)。
我该如何实现这种行为?loadItemForTypeIdentifier:options:completionHandler:
期望使用UTI,我尝试提供一个空字符串,但是没有用。
-(void)viewDidLoad {
[super viewDidLoad];
NSExtensionItem *item = self.extensionContext.inputItems[0];
NSItemProvider *itemProvider = item.attachments[0];
NSLog(@"%@",itemProvider);
if ([itemProvider hasItemConformingToTypeIdentifier:(NSString *)kUTTypePlainText])
{
[itemProvider loadItemForTypeIdentifier:(NSString *)kUTTypePlainText options:nil completionHandler:^(NSString *item, NSError *error)
{
if (item)
{
textString=item;
}
}];
}
Run Code Online (Sandbox Code Playgroud)
我在我的应用程序中使用共享扩展名。我将其用作UIViewController而不是SLcomposer的子类。在viewDidLoad中,我试图从中访问页面中的文本NSItemProvider
,但是它只有一个密钥,即public url,任何人都可以给我一个有关如何实现kUTTypePlainText
在 NSItemProvider
。我还设置了NSExtensionActivationSupportsText,其类型为Boolean,值为YES。
在右上方有禁用的帖子按钮.如何更改文本或手动启用?
navigationBar.rightBarButtonItem?.enabled = true
Run Code Online (Sandbox Code Playgroud)
不起作用
我想知道哪个应用程序调用共享扩展以将图像共享到我的应用程序(其bundleId或appName).但我发现无法做到这一点.NSExtensionContext中没有关于源应用程序的信息.我非常感谢任何帮助.
我正在尝试Achive跟随
1)用户在照片库中
2)选择一张照片
3)点击分享
4)选择myapp(我正在开发)
5)需要显示类别列表(将从Sql Lite中获取)
6)选择"类别名称"并将该图像保存到该类别中
你能指导我吗?我曾尝试过实现Share Extension.但没有成功.