5

私は共有拡張機能に取り組んでいます

これは info.plist ファイルのコードです。これはSafariでは正常に機能しますが、Chromeでは機能しません。

 <key>NSExtension</key>
        <dict>
        <key>NSExtensionAttributes</key>
        <dict>
            <key>NSExtensionActivationRule</key>
            <dict>
                <key>NSExtensionActivationSupportsImageWithMaxCount</key>
                <integer>0</integer>
                <key>NSExtensionActivationSupportsWebURLWithMaxCount</key>
                <integer>1</integer>
            </dict>
        </dict> 


        <key>NSExtensionMainStoryboard</key>
        <string>MainInterface</string>
        <key>NSExtensionPointIdentifier</key>
        <string>com.apple.share-services</string>
    </dict>

何か案が?Chromeでも共有拡張機能を有効にする方法

4

4 に答える 4

7

一部のコードがありません。クロムの場合は、js ファイルも渡す必要があります

<dict>
        <key>NSExtensionAttributes</key>
        <dict>
            <key>NSExtensionActivationRule</key>
            <dict>
                <key>NSExtensionActivationSupportsText</key>
                <true/>
                <key>NSExtensionActivationSupportsWebPageWithMaxCount</key>
                <integer>1</integer>
                <key>NSExtensionActivationSupportsWebURLWithMaxCount</key>
                <integer>1</integer>
            </dict>
            <key>NSExtensionJavaScriptPreprocessingFile</key>
            <string>DemoPreprocessor</string>
        </dict>
        <key>NSExtensionMainStoryboard</key>
        <string>MainInterface</string>
        <key>NSExtensionPointIdentifier</key>
        <string>com.apple.share-services</string>
    </dict>

詳細については、このリンクからデモ拡張コードにアクセスしてください。

于 2015-08-11T13:10:06.113 に答える
1

私の場合、「 NSExtensionJavaScriptPreprocessingFile 」で JS ファイルを追加しただけでは問題は解決しませんでした。

<key>NSExtension</key>
    <dict>
            <key>NSExtensionAttributes</key>
            <dict>
                    <key>NSExtensionJavaScriptPreprocessingFile</key>
                    <string>Action</string>
                    <key>NSExtensionActivationRule</key>
                    <dict>
                            <key>NSExtensionActivationSupportsText</key>
                            <true/>
                            <key>NSExtensionActivationSupportsWebURLWithMaxCount</key>
                            <integer>1</integer>
                    </dict>
            </dict>
            <key>NSExtensionMainStoryboard</key>
            <string>MainInterface</string>
            <key>NSExtensionPointIdentifier</key>
            <string>com.apple.share-services</string>
    </dict>

次を追加することも不可欠です。

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

理由は今のところわかりません。

公式ドキュメントでこれを見つけました: NSExtensionActivationSupportsText : このキーを含めて、アプリがテキストをサポートしていることをシステムおよび他のアプリに示します。

どうもありがとう。

于 2016-06-09T11:05:04.607 に答える
0

plist を編集する必要はありません。これは、Google Chrome と Safari の両方で機能します。

override func viewDidLoad() {
    super.viewDidLoad()

    for item in extensionContext!.inputItems {
        if let attachments = item.attachments {
            for itemProvider in attachments! {
                itemProvider.loadItemForTypeIdentifier("public.url", options: nil, completionHandler: { (object, error) -> Void in
                    if object != nil {
                        println(object) //This is your URL
                    }
                })
            }
        }
    }
}
于 2015-09-16T12:00:38.507 に答える