嗨,我正在開發一個社交網絡應用程序。因爲我需要使用擴展名來分享我的應用程序API。我正在開發我的應用程序目標C而不是斯威夫特。任何機構都可以幫助我解決這個問題。在ios8中使用共享擴展共享圖像
回答
創建目標C一個共享擴展
應用程序擴展名必須有一個包含應用程序 - 你不能只是建立一個應用程序擴展,從商店下載,首先創建一個普通的應用程序包含了應用擴展程序 爲了演示的目的,只需創建一個新的單視圖項目並保持原樣。 前往文件 - >新建 - >項目並選擇單視圖應用程序在下iOS - >應用程序稱之爲'ExtendableApp'。
轉到文件 - >新建 - >目標,並選擇下的iOS 分享擴展 - >應用程序擴展稱之爲「myShareExtension」這將份額擴張對象添加到您的項目。
擴展ShareViewController繼承自SLComposeServiceViewController,它已經有一個帶有文本框,圖像視圖和'取消'和'發佈'按鈕以及像字符數,配置,內容驗證等其他功能的視圖。
如果你想創建自定義體驗,只需將你的ShareViewController設置爲從UIViewController繼承,一旦你的擴展被激活,所有常規的viewDidLoad,viewDidAppear等都會被調用。
在安裝您的應用程序包含你將已經能看到「myShareExtension」在UIActivityViewController菜單
獲取共享的UIImage
在你ShareViewController.mm在viewDidAppear使用下面這後一點以獲取圖像
-(void)viewDidAppear:(BOOL)animated
{
for (NSItemProvider* itemProvider in ((NSExtensionItem*)self.extensionContext.inputItems[0]).attachments)
{
if([itemProvider hasItemConformingToTypeIdentifier:@"public.image"])
{
[itemProvider loadItemForTypeIdentifier:@"public.image" options:nil completionHandler:
^(id<NSSecureCoding> item, NSError *error)
{
UIImage *sharedImage = nil;
if([(NSObject*)item isKindOfClass:[NSURL class]])
{
sharedImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:(NSURL*)item]];
}
if([(NSObject*)item isKindOfClass:[UIImage class]])
{
sharedImage = (UIImage*)item;
}
}];
}
}
}
注意 - 此代碼是僅適用於惡魔擴展應該是快速和輕量級的,並且在加載圖像時不會阻塞UI線程,在實際應用中,您可以在後臺執行此操作。
指定在內線顯示了
默認擴展現在將顯示,每當出現UIActivityViewController菜單中,可以指定其中的場景擴展應該出現在你需要在擴展信息來設置適當的值。NSExtension,NSExtensionAttributes,NSExtensionActivationRule 下的plist您可以找到可用密鑰的decumentation這裏: Information Property List Key Reference
注意,默認行爲是爲您的擴展出現時所有鍵申請,這意味着,如果你指定NSExtensionActivationSupportsImageWithMaxCount
和NSExtensionActivationSupportsMovieWithMaxCount
只有在用戶共享圖像和電影不是圖像或電影時,您的擴展才會顯示。 要寫入出現了幾個共享數據類型中的任何一個延伸看看這裏
http://bryan.io/post/97658826431/what-we-learned-building-the-tumblr-ios-share-extension
Declaring Supported Data Types for a Share or Action Extension
我得到了圖像和所有。現在我需要在後臺分享圖片。你能提供任何代碼嗎? – TamilKing 2014-11-18 10:53:33
我不明白,從你的問題看,你似乎正在開發一個共享擴展,所以你爲什麼要分享一個已經與你共享的圖像? 無論上下文如何,使用共享擴展的唯一方法是通過UIActivityViewController,它需要呈現此控制器,因此無法在後臺完成。 – MichaelB 2014-11-19 05:55:48
我添加所有的東西,也分享..有些時候它不共享..我需要調用兩個API來上傳圖像。我希望在後臺會話中處理錯誤。 – TamilKing 2014-11-19 11:37:16
- 1. iOS8擴展:在容器和擴展之間共享圖像
- 2. 在IOS8 beta中共享擴展
- 3. 如何調試ios8共享擴展?
- 4. Facebook共享擴展,共享圖像和鏈接
- 5. 如何在iOS8中自定義共享擴展視圖
- 6. 共享UserDefaults擴展
- 7. 從共享擴展
- 8. 如何在iOS8共享擴展中獲取視頻屬性
- 9. 如何在共享擴展的幫助下共享圖像完整數據?
- 10. 共享分享類和數據庫共享擴展
- 11. NSURLSession從MacOS共享擴展
- 12. ios共享擴展相機
- 13. iOS共享擴展通知
- 14. excel共享公式擴展
- 15. Firefox擴展:共享狀態
- 16. 使用parse.com共享圖像
- 17. ios8擴展和容器應用程序如何共享數據
- 18. 如何在iOS 9中使用共享擴展共享筆記數據?
- 19. 確定使用哪個共享擴展
- 20. 如何在IOS8中使用共享擴展時獲取源應用的bundleId
- 21. 如何在opera擴展中共享cookie?
- 22. 如何在Alfresco中擴展toolbar.get.config.xml共享
- 23. 在共享擴展中上傳圖像導致NSURLErrorDomain代碼= -997
- 24. Twitter圖像共享
- 25. 使用android共享對話框共享圖像和文本
- 26. 我無法使用共享對話框共享圖像
- 27. iOS中的共享擴展和Safari中的圖像
- 28. 圖像共享在IOS
- 29. Android中的建築共享擴展
- 30. Android共享意圖共享圖像不存在
你可以說你是如何獲得的形象呢? – Yohan 2015-04-23 09:29:34