簡體   English   中英

UIActivityController行為在設備和模擬器上有所不同

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM