ios - 共享所选文本 - iOS 共享扩展

标签 ios swift xcode ios8-share-extension share-extension

我希望能够共享选定的文本,但我的扩展仅在单击共享图标时出现(然后它会使用页面标题填充该字段)。我希望我的扩展程序在用户选择文本并单击“共享...”时出现(如下图所示),然后我希望它用所选文本填充文本区域。

I want extension to be accessible here

共享 View Controller :

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")
        }
    }

Action.js(JS预处理)

var MyPreprocessor = function() {};

MyPreprocessor.prototype = {
run: function(arguments) {
    arguments.completionFunction({"URL": document.URL, "title": document.title, "selection": window.getSelection().toString()});
}
};

var ExtensionPreprocessingJS = new MyPreprocessor;

信息.plist

最佳答案

就目前而言,您的 NSExtensionActivationRule 明确要求提供 1 个网址,因此这就是您得到的结果。

相反,请尝试将您的 NSExtensionActivationRule(在 info.plist 中)更改为:

<dict>
    <key>NSExtensionActivationSupportsText</key>
    <true/>
</dict>

如果这不起作用,请尝试更长的时间:

<key>NSExtensionAttributes</key>
<dict>
    <key>NSExtensionActivationUsesStrictMatching</key>
    <integer>2</integer>
    <key>NSExtensionActivationRule</key>
    <dict>
        <key>NSExtensionActivationDictionaryVersion</key>
        <integer>2</integer>
        <key>NSExtensionActivationSupportsText</key>
        <true/>
    </dict>
</dict>

您可以在这篇文章中阅读更多内容:IOS Share extension: how to read from notes posts .

关于ios - 共享所选文本 - iOS 共享扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51052915/

相关文章:

iphone - 使用24-12小时格式的xcode在“TimePicker”中设置NSDate

ios - 使用空格进行 GET 查询

ios - 如何在 swift 4 中创建日期和时间选择器,以便用户能够选择日期和时间

swift - 按一周中没有时间的日子进行过滤(Realm 和 Swift)

Ios Swift 饼图

ios - 一旦发现用户的位置,使当前位置出现在 map 上 swift 3

ios - 如何计算 textView 中的单词和字符总数?

iphone - XCode 4.2 安装错误

ios - 在 Swift 中使用 SPUserResizableView

ios - 带有表情符号的自定义键盘(如 kimoji)?