2015-06-01 33 views
6

Chức năng của SLComposeViewController không còn hoạt động như mong đợi với bản cập nhật ứng dụng Facebook iPhone mới nhất kể từ ngày 24 tháng 4. Bất kỳ văn bản ban đầu nào được chỉ định đều bị bỏ qua, mặc dù phương thức setInitialText trả về true như thể nó đã thành công. Hộp thoại sau đó luôn trả về "Xong" cho dù bạn nhấn "Xong" hay "Hủy". Tôi nhận ra đây là cuộc gọi của Apple và tôi thậm chí không sử dụng SDK Facebook, nhưng tôi đã xác minh rằng mọi thứ hoạt động hoàn hảo với phiên bản trước của Ứng dụng Facebook được cài đặt nhưng khi bạn nâng cấp ứng dụng Facebook trên iPhone, chức năng này không còn hoạt động như mong đợi. Lưu ý rằng kết quả của trình xử lý hoàn thành hiện luôn trả về "Xong" - ngay cả khi bạn nhấn "Hủy" và đồng thời, setInitialText: hiện không có gì. Đã xác minh rằng cùng một mã đã hoạt động trước ngày phát hành ngày 24 tháng 4.setInitialText không hoạt động với iOS 8.3 (facebook, social, SLComposeViewController)

if([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) { 

    controller = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook]; 



    [controller setInitialText:@"hiiiiiii"]; 
    [controller setCompletionHandler:^(SLComposeViewControllerResult result) 
    { 
     if (result == SLComposeViewControllerResultCancelled) 
     { 
      NSLog(@"The user cancelled."); 
     } 
     else if (result == SLComposeViewControllerResultDone) 
     { 
      NSLog(@"The user posted to Facebook"); 
     } 
    }]; 
    [self presentViewController:controller animated:YES completion:nil]; 
} 
else 
{ 
    SCLAlertView *alert = [[SCLAlertView alloc] init]; 
    [alert showWarning:self title:@"alert" subTitle:@"facebook not installed" closeButtonTitle:@"ok" duration:0.0f]; 
} 
+1

không được phép trên facebook, nếu đó là những gì bạn đang cố gắng làm – luschn

+0

việc điền trước được cho phép trên facebook và mã này (setInitialText :) đã hoạt động trên ios7, trong ứng dụng của tôi, tôi cần nó để điền tự động mô tả mục đã chọn. –

+0

prefilling KHÔNG được phép trên facebook, đó là một thực tế. – luschn

Trả lời

-2

setInitialText: không làm việc nữa vì Facebook gần đây đã thay đổi chính sách của mình về prefilling, nhưng addURL: vẫn làm việc và có thể hữu ích.

SLComposeViewController *mySLComposerSheet = [[SLComposeViewController alloc] init]; 
mySLComposerSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook]; 
NSURL *url = [[NSURL alloc] initWithString:linkString]; 
[mySLComposerSheet addURL:url]; 

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

[mySLComposerSheet setCompletionHandler:^(SLComposeViewControllerResult result) { 
    NSString *output; 
    switch (result) { 
     case SLComposeViewControllerResultCancelled: 
      NSLog(@"SLComposeViewControllerResultCancelled"); 
      break; 
     case SLComposeViewControllerResultDone: 
      NSLog(@"SLComposeViewControllerResultDone"); 
      break; 
    } 
}]; 

Bằng cách này, tôi có thể điền trước nhà soạn nhạc bài đăng trên Facebook bằng URL vào ứng dụng của tôi.

Tôi hy vọng nó hữu ích.

0

Tại thời điểm bài đăng này, FB vẫn không cho phép đặt văn bản ban đầu, ngay cả khi sử dụng FB SDK.

Cách tôi thực hiện để bỏ qua vấn đề là sao chép nội dung vào khay nhớ tạm và hiển thị hộp thoại để thông báo cho người dùng rằng họ có thể dán nội dung được đặt trước.

Các vấn đề liên quan