2014-06-24 49 views
2

我一體的共享選項到我的應用程序,一切似乎很好,我基本上排除了除消息,Twitter和Facebook的每一種類型的UIActivity的,當我測試,看看它的功能,我在看文本框夸克在UIActivityViewController整合

「我有一個新的高分!

com.apple.UIKit.activity.Message

com.apple.UIKit.activity.PostToFacebook

com.apple.UiKit.activity.PostToTwitter「。

和文字出現在每個活動。

反正是有刪除文本,或者它應該是這個樣子?

這裏是我的MainViewController的方法,它呈現UIActivityViewController。

-(void)sharedView { 

APActivityProvider *APActivityPro = [[APActivityProvider alloc] init]; 

NSArray *activites = @[APActivityPro,UIActivityTypeMessage, UIActivityTypePostToFacebook, UIActivityTypePostToTwitter]; 

activityController = [[UIActivityViewController alloc] initWithActivityItems:activites applicationActivities:nil]; 

activityController.excludedActivityTypes = @[UIActivityTypePostToWeibo, 
              UIActivityTypeMail, 
              UIActivityTypePrint, 
              UIActivityTypeCopyToPasteboard, 
              UIActivityTypeAssignToContact, 
              UIActivityTypeSaveToCameraRoll, 
              UIActivityTypeAddToReadingList, 
              UIActivityTypePostToFlickr, 
              UIActivityTypePostToVimeo, 
              UIActivityTypePostToTencentWeibo, 
              UIActivityTypeAirDrop]; 

[self presentViewController:activityController animated:YES completion:nil]; 

[activityController setCompletionHandler:^(NSString *activityType, BOOL completed) 
{ 

    if (completed) 
    { 
     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"" 
                 message:NSLocalizedString(@"Post Sent!",@"the confirmation of the sent message/post") 
                 delegate:nil 
               cancelButtonTitle:NSLocalizedString(@"OK",@"done") 
               otherButtonTitles:nil]; 
     [alert show]; 
    } 
} 
]; 
} 

而且我的代碼在我的APActivityProvider.m文件中。

-(id) activityViewController:(UIActivityViewController*)activityViewController 

    itemForActivityType:(NSString *)activityType 

{ 

if ([activityType isEqualToString:UIActivityTypeMessage]) 

    return NSLocalizedString(@"I got a new highscore!",@"Comment for message"); 

if ([activityType isEqualToString:UIActivityTypePostToFacebook]) 

    return NSLocalizedString(@"I got a new highscore!",@"Comment for Facebook"); 

if ([activityType isEqualToString:UIActivityTypePostToTwitter]) 

    return NSLocalizedString(@"I got a new highscore!",@"Comment for twitter"); 

return nil; 
} 

- (id) activityViewControllerPlaceholderItem:(UIActivityViewController *) 

activityViewController 

{ 
return @""; 
} 
+0

我想我們需要看到一些源代碼才能給你答案。 – onnoweb

+0

@onnoweb我在與我的問題相關的代碼中添加。 – Blank

回答

0

這會顯示你正在使用API​​不正確。具體做法是:

NSArray *activites = @[APActivityPro,UIActivityTypeMessage, UIActivityTypePostToFacebook, UIActivityTypePostToTwitter]; 

activityController = [[UIActivityViewController alloc] initWithActivityItems:activites applicationActivities:nil]; 

活動的項目是你的內容(字符串,圖像等),而applicationItems是自定義活動選項添加到默認的系統的人(你代碼,如應用程序商店活動開放)。你不需要告訴UIActivityViewController你想要的系統活動。所有都默認啓用。

有關如何使用此API的例子,我已經包括了以下內容:

NSNumber *AppStoreID = [NSNumber numberWithInt:550008982]; 

NSArray *activityItems = 
@[ AppStoreID ]; 

NSArray *applicationActivities = 
@[ [ATFAppStoreActivity alloc] ]; 

UIActivityViewController *activityViewController = 
[[UIActivityViewController alloc] initWithActivityItems:activityItems 
            applicationActivities:applicationActivities]; 

[self presentViewController:activityViewController animated:YES completion:nil]; 

在這裏,我有我的子類UIActivity(ATFAppStoreActivity),其採用的NSNumber到該應用顯示在App Store頁面。

+0

謝謝,它完全解決了我的問題。如果我真的有足夠的代表,我會投票。 – Blank