[英]UIActivityController behaviour different on device and simulator
我將ActivityViewController如下所示添加到我的應用中,並傳入圖像
UIActivityViewController *avc = [[UIActivityViewController alloc]initWithActivityItems:[NSArray arrayWithObjects:img,nil] applicationActivities:[NSArray arrayWithObjects:nil]];
[self presentModalViewController:avc animated:YES];
[avc release];
在模擬器上(推特,Facebook和微博帳戶均未配置):
默認情況下,選項郵件,推特,臉書,微博,分配給聯系人,保存到相機膠卷,打印和復制。
但在設備上:
在我的應用中:twitter,facebook和weibo僅顯示是否配置了帳戶。
在safari中:無論是否配置了帳戶,都可以使用twitter,facebook和weibo選項。
我期望我的應用程序中的行為與野生動物園相同。 我是否缺少特定步驟?
好吧,我知道了問題所在。
UIActivityViewController中顯示的選項完全取決於要共享的項目的類型。 例如,如果有視頻,則不會顯示Facebook或Twitter選項。 但是,如果它是圖像和標題,則肯定會顯示相關選項。
以下將顯示諸如郵件,Twitter,Facebook,assignToContact,保存到相機膠卷,打印,復印等應用程序
// Create the content
NSString *message = @"The Upcoming App Scribble Talk";
UIImage *imageToShare = [UIImage imageNamed:@"createbtn.png"];
NSArray *objectsToShare = [NSArray arrayWithObjects:message, image, nil];
但是,以下內容只能調出相機膠卷,郵件或副本。
NSString *message = @"The Upcoming App Scribble Talk";
NSString *videoToShare = @"myFirsScribble.mov";
NSURL *videoPath = [NSURL fileURLWithPath:videoToShare];
NSArray *objectsToShare = [NSArray arrayWithObjects:message, videoPath, nil];
我認為您只想在UIActivityViewController中顯示某些特定服務。 您可以如下定義一個稱為excludedActivityTypes
屬性,以避免某些默認活動。
UIActivityViewController *yourvc = [[UIActivityViewController alloc]initWithActivityItems:[NSArray arrayWithObjects:img,nil] applicationActivities:[NSArray arrayWithObjects:nil]];
yourvc.excludedActivityTypes = @[UIActivityTypePostToWeibo,UIActivityTypePrint,UIActivityTypeMail,UIActivityTypeCopyToPasteboard];//Try this code in simulator.. you can only see FB & Twitter.
[self presentModalViewController:yourvc animated:YES];
[avc release];
同樣,您可以從默認的UIActivityViewController中排除。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.