Если вам определенно необходимо удалить перенаправление в приложение Safari или Facebook, откройте класс FBConnect Facebook.h и найдите следующий метод:
- (void)authorizeWithFBAppAuth:(BOOL)tryFBAppAuth
safariAuth:(BOOL)trySafariAuth {
там вам нужно заявить, что вы не хотите никуда перенаправляться, для этого установите эти два значения bool на NO
- (void)authorizeWithFBAppAuth:(BOOL)tryFBAppAuth
safariAuth:(BOOL)trySafariAuth {
tryFBAppAuth = NO;
trySafariAuth = NO;
Далее, чтобы опубликовать что-то на стене, у вас есть два варианта. Одно не работает - стандартное диалоговое окно facebook, которое выведет клавиатуру за реальным веб-обзором, как только вы покажете UIAlertView
ЛЮБОЕ в своем приложении, поэтому НЕ используйте его. Вместо этого используйте свой собственный пользовательский интерфейс с простой областью UITextView
и кнопкой на розетке. Вот метод, который вам понадобится для публикации на стене из вашего пользовательского представления:
- (void)facebookPostToWallWithMessage:(NSString *)message {
sharedInstance.facebookDelegate = delegate;
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
message, @"message", // The status message
nil];
pushMessageRequest = [facebook requestWithGraphPath:@"me/feed"
andParams:params
andHttpMethod:@"POST"
andDelegate:self];
}
А вот методы делегирования, которые вам понадобятся для того, чтобы сообщить пользователям, что они опубликовали обновление, или сообщить им, что оно вышло из строя:
- (void)request:(FBRequest *)request didLoad:(id)result {
if (request == pushMessageRequest) {
NSLog(@"message has been posted, inform delegate");
}
}
- (void)request:(FBRequest *)request didFailWithError:(NSError *)error {
if (request == pushMessageRequest) {
//failed to post message, inform delegate
//[facebookDelegate facebookFailedToPostToWallWithMessage:error.localizedDescription];
}
}