新しい iOS 8 アプリ拡張機能を使用して共有拡張機能を作成しようとしています。Safari サイトの現在の URL を取得して、UILabel に表示しようとしました。十分に単純です。
私はここでアップルの公式拡張ガイドに取り組んでいましたしかし、いくつかのことが期待どおりに機能していません。ベータ版であることはわかっていますが、何か間違ったことをしているだけかもしれません。
拡張ViewController内のSafariからURLを取得するコードは次のとおりです。
-(void)viewDidAppear:(BOOL)animated{
NSExtensionContext *myExtensionContext = [self extensionContext];
NSArray *inputItems = [myExtensionContext inputItems];
NSMutableString* mutableString = [[NSMutableString alloc]init];
for(NSExtensionItem* item in inputItems){
NSMutableString* temp = [NSMutableString stringWithFormat:@"%@, %@, %lu,
%lu - ",item.attributedTitle,[item.attributedContentText string],
(unsigned long)[item.userInfo count],[item.attachments count]];
for(NSString* key in [item.userInfo allKeys]){
NSArray* array = [item.userInfo objectForKey:@"NSExtensionItemAttachmentsKey"];
[temp appendString:[NSString stringWithFormat:@" in array:%lu@",[array count]]];
}
[mutableString appendString:temp];
}
self.myLabel.text = mutableString;
}
そして、これは私の拡張機能の Info.plist ファイルの内容です:
<dict>
<key>NSExtensionMainStoryboard</key>
<string>MainInterface</string>
<key>NSExtensionPointIdentifier</key>
<string>com.apple.share-services</string>
<key>NSExtensionActivationRule</key>
<dict>
<key>NSExtensionActivationSupportsWebURLWithMaxCount</key>
<integer>200</integer>
</dict>
</dict>
Safari でアップルの iPod サポート ページにアクセスし、それを拡張機能に共有しようとすると、次の値が表示されますが、URL は表示されません。
item.attributedTitle = (null)
item.attributedContentText = "iPod - Apple Support"
item.userInfo.count = 2 (two keys: NSExtensionAttributedContentTextKey and
NSExtensionItemAttachmentsKey)
item.attachments.count = 0
ディクショナリのオブジェクト内の配列は常に空です。
Apple サイトをシステム メール アプリで共有すると、URL がメッセージに投稿されます。では、拡張機能に URL がないのはなぜですか?