Диалоговое окно Facebook Feed возвращает необработанный JavaScript, включая post_id, который приводит к сбою приложения iOS - PullRequest
2 голосов
/ 23 ноября 2011

Я пытаюсь использовать 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];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...