我正尝试使用新的iOS 8应用程序扩展创建共享扩展。我尝试获取Safari网站的当前网址,以便在UILabel中显示它。够简单。在IOS8 beta中共享扩展
我正在从苹果这里工作槽通过官方扩展指南https://developer.apple.com/library/content/documentation/General/Conceptual/ExtensibilityPG/Share.html#//apple_ref/doc/uid/TP40014214-CH12-SW1但有些东西没有按预期工作。我知道它只是在测试版中,但也许我只是在做一些错误的事情。
这里是我的代码,以获得扩展内从Safari浏览器的URL的ViewController:
-(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:%[email protected]",[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支持页面,并尝试将其分享到我的扩展程序,我得到以下值但没有网址:
item.attributedTitle = (null)
item.attributedContentText = "iPod - Apple Support"
item.userInfo.count = 2 (two keys: NSExtensionAttributedContentTextKey and
NSExtensionItemAttachmentsKey)
item.attachments.count = 0
字典对象内的数组始终为空。
当我使用系统邮件应用程序共享苹果站点时,该URL会发布到邮件中。那么为什么我的扩展中没有URL?
我从来没有管理完成处理程序正常工作的共享扩展没有用户界面。结束使用基于JavaScript的解决方法 - 请参阅我的[答](http://stackoverflow.com/a/27389343/2797141)。 – xZenon