私は、次のユーザーの流れを達成しようとしているiOSのシェア拡張子:Safariでコンテキストメニューを経由して共有するときに、ページのURLを取得
欲しい:
- ユーザーがWebページを閲覧しているがiOS Safari。
- ユーザーがコンテンツ(テキストと画像)を選択し、コンテキストメニューが表示されるまで待ちます。
- ユーザーは[共有...]項目を選択します。
- ユーザーは、共有メニューの下にある自分のApp Extensionを選択します。
- 選択したコンテンツとWebページのURLは、HTTコール経由でリモートサーバーに共有されます。 私はXcodeのを経由して共有拡張を作っ
を試してみました何
。ここに私のinfo.plist
のNSExtension
セクションがあります:
<key>NSExtension</key>
<dict>
<key>NSExtensionAttributes</key>
<dict>
<key>NSExtensionActivationRule</key>
<dict>
<key>NSExtensionActivationSupportsWebPageWithMaxCount</key>
<integer>1</integer>
<key>NSExtensionActivationSupportsText</key>
<true/>
<key>NSExtensionActivationSupportsWebURLWithMaxCount</key>
<integer>1</integer>
</dict>
<key>NSExtensionJavaScriptPreprocessingFile</key>
<string>test</string>
</dict>
<key>NSExtensionMainStoryboard</key>
<string>MainInterface</string>
<key>NSExtensionPointIdentifier</key>
<string>com.apple.share-services</string>
</dict>
ここtest.js
ファイルです:
var GetURL = function() {};
GetURL.prototype = {
run: function(arguments) {
arguments.completionFunction({"URL": document.URL});
}
};
var ExtensionPreprocessingJS = new GetURL;
は、私は次のような結果が予想される:私は次のようになり、それを通して、いくつかの入力項目、と私を提供するextensionContext?.inputItems
viewDidLoad
方法で選択したコンテンツとウェブURLを取得することができます。選択したコンテンツのプレインテキスト表現(私は同時に、画像やテキストを選択した場合でも) - 一つのアイテムだけで私を提供extensionContext?.inputItems
viewDidLoad
方法で
うまくいかない何
。プレーンテキストで暮らすことができますが、ウェブページのURLが必要です。
私の質問
どのようにiOSのSafariでコンテキストメニューから選択したコンテンツを共有する共有の拡張機能を使用しているとき、私は開かれたWebページのURLを取得できますか?
Swfit3の構文を適用した後、私のために働いています:itemProvider.loadItem(forTypeIdentifier: "public.url"、options:nil、completionHandler:{(url、error) - > Void in –
@先端のためのYunCHENのおかげであなたは歓迎されているSWIFT 3 –
に更新答え、;。) –