2011-06-02 33 views
3

我已將FBConnect SDK應用到我的應用中,並且它在模擬器上完美工作。然後,我適當地修改了應用的.plist文件,並添加了必要的方法,我的AppDelegate當被安裝在設備上的Facebook爲:FBConnect的handleOpenURL方法無法通過我的AppDelegate調用

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { 
NSLog(@"handleOpenURL Method was called and sent the following:"); 
NSString *urlString = [NSString stringWithContentsOfURL:(NSURL *)url];  
NSLog(@"URL String: %@", urlString); 
return [[flipsideViewController facebook] handleOpenURL:url]; 
} 

從上面NSLogs和我的應用程序後,返回到前臺觀察授權通過Facebook訪問,我推斷FB應用程序正在適當地將控制交給我的應用程序。不幸的是,Facebook.m的「handleOpenURL:url」方法實際上並沒有按照我在AppDelegate中的請求被調用(即沒有顯示下面的NSLog)。

- (BOOL)handleOpenURL:(NSURL *)url { 
// If the URL's structure doesn't match the structure used for Facebook authorization, abort. 
NSLog(@"handleOpenURL was handled by SDK. Good!"); 
if (![[url absoluteString] hasPrefix:[self getOwnBaseUrl]]) { 
NSLog(@"handleOpenURL structure doesn't match the structure used for Facebook authorization. Aborting."); 
return NO; 
} 
//... 

其結果是,我的應用程序的視圖控制器(其中我點擊我的Facebook按鈕以開始)被簡單地返回到屏幕,我放置在「fbDidLogin」方法的代碼(在我的視圖控制器使用發佈到用戶的牆上)永遠不會像在模擬器中那樣被調用。

我能忽略什麼?需要哪些其他信息來解決這個問題?任何幫助將非常感謝,因爲我一直在這一點掙扎。

重要摘要備註: 1.)應用程序按照需要在模擬器上運行。 2.)handleOpenURL當我從我的AppDelegate請求它時,不會調用該方法。 3.)我沒有收到任何錯誤/警告。 4.)我可以在我的設備上運行DemoApp,並且我注意到handleOpenURL方法在'DemoAppAppDelegate'請求時被適當地調用。

在此先感謝!

+0

你在設備上運行哪些版本的iOS? – Rayfleck 2011-06-02 16:35:29

+0

@Rayfleck版本4.3.3在設備上和4.3在模擬器上。這個問題是在提出了[爲什麼我首先在​​我的設備上看到不同結果 - > LINK]這個問題後才提出來的(http://stackoverflow.com/questions/6190211/connecting-publishing-to-facebook-with- fbconnect-works-on-simulator-but-not-ipho) – JRoss 2011-06-02 17:16:34

+0

我在這裏找到了解決方案:[http://stackoverflow.com/questions/5783782/fbdidlogin-not-called-ios](http://stackoverflow.com/questions/5783782/fbdidlogin-not-called-ios)打開facebook.m文件並找到以下行:[self authorizeWithFBAppAuth:YES safariAuth:YES];並將其更改爲[self authorizeWithFBAppAuth:NO safariAuth:NO]; – Yotes 2012-01-24 14:14:40

回答