Я пытаюсь использовать Facebook Feed Dialog.
В соответствии с примерами на веб-страницах разработчика Facebook я кодировал два класса MyAppModelClass и MyViewCntrl , см. Ниже.
Компиляция выполняется без ошибок и предупреждений!
И приложение iOS зависает только при первом запуске.
Когда я звоню [MyViewCntrl aMethod] в первый раз
- Пользователь должен войти в систему с электронной почтой и паролем
- После входа в систему можно редактировать стену пользователей
- После нажатия кнопки «Поделиться» в диалоговом окне канала отображается серое изображение, и приложение iOS зависает.
Вид показывает текст, который говорит:
<script type="text/javascript">
window.location.href="fbconnect:\/\/success?
post_id=<MyFbUserID>_253268854729889#_=_";
</script>
Мне кажется, второе число в post_id - это токен доступа, но я не уверен.
- I не не получает NSLog от одного из
FBDialofDelegate
методы, ( [MyAppModelClass dialogDidComplete] ,
[MyAppModelClass dialogDidNotComplete] ,…) на консоли!
- На стене пользователя появляется сообщение
Если я остановлю приложение iOS в симуляторе iphone (кнопка «Домой») и i Xcode (кнопка «Стоп») и
затем перезапустите приложение на симуляторе iPhone. Меня не спрашивают об аутентификации.
И я не возвращаю этот javascript, тогда все работает нормально.
Что я могу сделать, чтобы обработать, избежать или избавиться от JavaScript, возвращенного во время первого запуска?
См. Схему кода ниже ...
MyAppModelClass.h
#import "Facebook.h"
#import "FBConnect.h"
#import "FBDialog.h"
@interface MyAppModelClass : NSObject <FBDialogDelegate, FBSessionDelegate> {
@property (nonatomic, retain) Facebook* facebook;
}
MyAppModelClass.m
#import "MyAppModelClass.h"
@synthesize facebook;
#pragma mark -
#pragma mark FBDialogDelegate
- (void) dialogDidComplete: (FBDialog*) dialog {
NSLog(@"<FBDialogDelegate>.dialogDidComplete: %@", dialog);
}
- (void) dialogCompleteWithUrl:(NSURL*) url {
NSLog(@"<FBDialogDelegate>.dialogDidCompleteWithURL: %@", url);
}
- (void) dialogDidNotComplete:(FBDialog*) dialog {
NSLog(@"<FBDialogDelegate>.dialogDidNotComplete: %@", dialog);
}
- (void)dialogDidNotCompleteWithUrl:(NSURL*) url {
NSLog(@"<FBDialogDelegate>.dialogDidNotCompleteWithUrl: %@", url);
}
- (void)dialog:(FBDialog*)dialog didFailWithError:(NSError*) error{
NSLog(@"<FBDialogDelegate>.didFailWithError: %@", dialog);
}
MyViewCntrl.h
#import "MyAppModelClass.h"
- (void) aMethod;
MyViewCntrl.m
#import "MyViewCntrl.h"
- (void) aMethod {
NSMutableDictionary* myParameters = [[NSMutableDictionary alloc];
initWithObjectsAndKeys: @"1234567", @"app_id",
@"touch", @"display",
@"http://myWebSite.de/pics/AppIcon.jpg", @"picture",
@"http://myWebSite.de", @"link",
@"It's my web site", @"caption",
@"Visit my personal web site", @"description",
@"false", @"show_error", nil];
[ptrMyAppModelClass facebook] dialog: @"feed"
andParams: myParameters
andDelegate: ptrMyAppModelClass];
}