簡體   English   中英

分享所選文本 - iOS共享擴展

[英]Share Selected Text - iOS 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")
        }
    }

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;

的Info.plist

就像現在一樣,您的NSExtensionActivationRule明確要求提供1個Web URL,這就是您所獲得的。

相反,嘗試將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擴展:如何閱讀筆記帖子

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM