[英]Confused using UIActivityViewController
你能幫我理解什么時候應該使用UIActivityViewController
。 我有一個按鈕,用於共享有關我的應用程序的通用信息(類似於“我喜歡這個應用程序”,帶有鏈接和圖像)。 我的舊代碼是:
NSMutableDictionary *params = [NSMutableDictionary dictionary];
[params setObject:picture forKey:@"picture"];
[params setObject:link forKey:@"link"];
[params setObject:@"I like MY app!" forKey:@"caption"];
[params setObject:@"I am now using MY iPhone app." forKey:@"description"];
[params setObject:linkToTheIcon forKey:@"icon"];
[params setObject:@"including link" forKey:@"type"];
[[FacebookConnection instance] feedLink:params andDelegate:self];
現在我想使用UIActivityViewController
但我有點困惑如何將所有這些參數傳遞給它。 或者我應該以其他方式做事?
補充:所以我明白我需要靜默發布程序。 您能否指導我使用 iOS 6 功能(使用內置 FB 帳戶編輯)完成靜默發布過程。 現在我不明白如何檢查設備上是否存在 FB 帳戶,如果不是如何提示創建它? ACAccount 存儲類中有一個方法– requestAccessToAccountsWithType:options:completion:
訪問帳戶。 但是,如果帳戶不存在,則會返回錯誤。 提前謝謝了。
您首先需要繼承 UIActivity。
然后你需要覆蓋某些方法,包括用於設置圖標的 activityImage 和用於執行操作的 performActivity 。
如果不是靜默執行操作,您首先需要自定義活動的進一步用戶交互和信息(例如,標准 UIActivity 的 Twitter 帖子),您應該覆蓋 activityViewController 而不是 performActivity。
在您對 UIActivity 進行子類化(例如 MyActivity)之后,您應該創建 MyActivity 的一個實例,並將其設置為您傳遞給 initWithActivityItems:applicationActivities: 的 applicationActivities 數組的一個元素。
查看UIActivity 的文檔,了解在子類化和圖標要求時需要覆蓋的內容。
希望這有所幫助
在您的情況下,很明顯您不應該使用UIActivityViewController
因為您想在 Facebook 上而不是在 twitter 或其他任何地方發帖,對吧? 首先,您需要訪問用戶的帳戶。 你這樣做:
-(void)requestBasicPermissionsForFacebookAccount {
ACAccountType * facebookAccountType = [self.accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook];
NSArray * permissions = @[@"email"];
NSDictionary * options = @{ACFacebookAppIdKey : kFacebookAppId, ACFacebookPermissionsKey : permissions, ACFacebookAudienceKey : ACFacebookAudienceEveryone};
FacebookAccountManager * fbMgr = [[FacebookAccountManager alloc] init];
[self.accountStore requestAccessToAccountsWithType:facebookAccountType options:options completion:^(BOOL granted, NSError *error) {
if (granted) {
NSArray * accounts = [self.accountStore accountsWithAccountType:facebookAccountType];
fbMgr.account = [accounts lastObject];
fbMgr.isBasicPermissionsGranted = YES;
[self.accountManagers addObject:fbMgr];
NSLog(@"granted!");
}
else {
fbMgr.account = nil;
fbMgr.isBasicPermissionsGranted = NO;
switch ([error code]) {
case 1:
[self showErrorAlertWithMessage:@"Unknown error occured, try again later!"];
break;
case 3:
[self showErrorAlertWithMessage:@"Authentication failed, try again later!"];
break;
case 6:
[self showErrorAlertWithMessage:@"Facebook account does not exists. Please create it in Settings and come back!"];
break;
case 7:
[self showErrorAlertWithMessage:@"Permission request failed. You won't be able to share information to Facebook"];
break;
default:
break;
}
NSLog(@"error is: %@", error);
}
}];
}
如果帳戶不存在,您應該提示用戶在設置中創建它,然后再次嘗試獲取基本權限。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.