我尝试使用Facebook的Feed对话框。 根据Facebook Developer的网页上的示例,我编写了两个类 MyAppModelClass 和 MyViewCntrl ,见下文。
编译运行时没有错误或警告! iOS应用程序仅在第一次运行时挂起。
当我致电 [MyViewCntrl aMethod] 第一次时 - 用户必须使用电子邮件和密码登录 - 登录后可以对用户墙进行编辑 - 点击Feed对话框中的“分享”按钮后,我会看到一个灰色视图,iOS应用程序挂起。
该视图显示的文字显示:
<script type="text/javascript">
window.location.href="fbconnect:\/\/success?
post_id=<MyFbUserID>_253268854729889#_=_";
</script>
我认为post_id的第二个数字是一个访问令牌,但我不确定。
如果我停止iphone模拟器中的iOS应用程序(主页按钮)和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];
}