0
因此,我只是在應用程序內部做了一個基本的Facebook分享,它在我的設備(iPhone 6 OS 9.1和iPad air 9.02)上正常工作,但不起作用在我的同事iPad Air 2 8.4.1或iPhone 6 Plus 9.1上。任何人都有任何線索,爲什麼會這樣?iOS上的Facebook共享在某些設備上可用,但不適用於其他設備
他們在設備設置中登錄Facebook。他們也安裝了facebook應用程序(我沒有應用程序,只是通過設置登錄)
下面是我的設備屏幕截圖,顯示要共享的消息,其他設備只顯示圖像並且沒有文本。
下面是我使用的共享
- (void)shareTapped {
UIImage *image = self.pictureView.image;
NSString *postText = [NSString stringWithFormat:@"%@\n*%@\n%@\n%@, %@ %@", self.event.shortDescription, self.event.eventCode, self.event.address, self.event.city, self.event.state, self.event.zip];
[[UtilitiesObject sharedInstance] shareMessage:postText image:image parentVC:self];
}
- (void)shareMessage:(NSString *)msg image:(UIImage *)image parentVC:(UIViewController *)parentVC {
NSArray *activityItems = @[msg];
if (image) {
activityItems = @[msg, image];
}
UIActivityViewController *activityController = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
// Tailor the list of services displayed
activityController.excludedActivityTypes = @[UIActivityTypeAssignToContact,
//UIActivityTypePostToFacebook,
//UIActivityTypePostToTwitter,
//UIActivityTypeMail,
UIActivityTypeMessage,
UIActivityTypeSaveToCameraRoll,
UIActivityTypePrint,
UIActivityTypePostToWeibo,
UIActivityTypeCopyToPasteboard];
activityController.popoverPresentationController.sourceView = parentVC.view;
[activityController setCompletionWithItemsHandler:
^(NSString *activityType, BOOL completed, NSArray *returnedItems, NSError *activityError) {
if ([activityType isEqualToString: UIActivityTypeMail]) {
NSLog(@"Mail");
}
if ([activityType isEqualToString:UIActivityTypePostToFacebook]) {
NSLog(@"Facebook");
}
if ([activityType isEqualToString:UIActivityTypePostToTwitter]) {
NSLog(@"Twitter");
}
}];
[parentVC presentViewController:activityController animated:YES completion:nil];
}
我看,很有意思。謝謝。 – linuxer
如果我使用官方的Facebook API呢? – linuxer
我不太清楚你的官方Facebook API是什麼意思。如果您的意思是Graph API,並且您擁有publish_actions權限,那麼您可以指定消息字段。但是,您必須允許用戶鍵入該消息,而不是預先填寫該消息。 –