アプリのiOS共有拡張機能に問題があります。シェアエクステンションInfo.plist
に次のコードがあります。iOS共有拡張機能が表示されない/ URLを受信できない
大きな問題は、Google Chrome、NYTimes、WSJなどの多くのアプリに拡張機能が表示されないことです。いずれもWebページまたはWeb URLのいずれかを提供する必要があります。
私はNSExtensionActivationRule dictに以下を追加する必要があるとお読みになりました。
<key>NSExtensionActivationSupportsText</key>
<true/>
これを追加すると、共有拡張が上記のアプリに表示されますが、拡張機能に文字列が返されます。たとえば、私がGoogle Chromeのapple.com
に行って、自分の共有拡張子を使用すると、私のアプリが本当にサポートしていない文字列としてApple
が文字列として提供されます。 URLに何らかのタイプのものを提供する必要があります。また、NYTimesアプリでは、記事の見出しを内線番号に送信するだけです。
拡張機能はSafariで完全に機能します。特定の第三者アプリケーションではありません。
以下は、内線番号のスワイプファイルでURLを受信するためのメインコードです。
if let item = extensionContext?.inputItems.first as? NSExtensionItem {
if let itemProvider = item.attachments?.first as? NSItemProvider {
if itemProvider.hasItemConformingToTypeIdentifier("public.url") {
itemProvider.loadItem(forTypeIdentifier: "public.url", options: nil, completionHandler: { (url, error) -> Void in
if let shareURL = url as? NSURL {
print (shareURL.absoluteString!)
そこから、私のアプリケーションとしてURLを処理する必要があります。
は、私はそれをテストするためにいくつか他のものと一緒にpublic.text
へ
public.url
から上記の少しのコードを変更し
NSExtensionActivationSupportsText
オプションを追加すると、それだけでスーパー役に立たない文字列を返していました。
NYTimesでも、記事の見出しだけでなくURLを挑戦するGoogle Chromeのオプションがあるため、これらのアプリケーションからURLを取得することは可能です。そのURLを取得する方法に関するアイデアですか?
コード例で次のエラーメッセージが表示されます。 '(null): 'Extension/Info.plistの共有'の内容を解析できませんでした:正しい形式でないため、データを読み取れませんでした。 '。より詳細な情報を提供し、そのコードが機能する理由を説明できる場合にも役立ちます。そのエラーメッセージが出て以来、まだ動作しているかどうかはわかりません。 –
@CharlieFishこれはWindowsのXamarinから私のプロジェクトからコピーされています。 Windowsの改行文字がその問題を引き起こす可能性があるので、行ごとにコピーしようとしますが、XcodeでMac上で最終バージョンを正しくコンパイルするように機能するはずです。おそらく、コピーと貼り付けに間違ったことがあります。 –
@CharlieFish考慮の説明 - Chromeはデータをその形式で設定しません。 Chromeの場合、もう1つのデータ形式を追加する必要があります(私は信じているプレーンテキスト)。しかし、それでもすべてのアプリで動作するわけではありません。アップルニュース。これは、実際にはURL付きの添付ファイルが1つしかない限り、アプリに動作するように指示します。 –