我正嘗試使用新的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