2012-01-19 28 views
1

我使用的是MacOSX 10.6,而Xcode模擬器是4.2,但在嘗試最好的情況下,handleOpenURL不會在我的appdelegate.m文件中調用,我已經實現了它。我遵循DropBox網站(DropBox Tutorial),handOpenURL沒有被iPhone應用程序調用使用DropBox SDK

給出的教程中的所有說明,但是,一旦用戶允許我的應用程序訪問,在通過Safari瀏覽器從該Dropbox帳戶登錄後,該控件將重定向到我的「鏈接與DropBox「視圖,即用戶有機會登錄的視圖,

問題是,handleOpenURL方法未被調用,也沒有調用didfinishWithLaunchingOptions方法。我曾在各種論壇上看到過有關同一主題的帖子,如果我們實現後者(didfinishWithLaunchingOptions)方法,handleOpenWithURL將不會調用,是這樣嗎?

如果不是的話,你能幫我找出我的代碼中的錯誤。我是這個領域的初學者,非常感謝你在這方面的幫助。

以下是在appdelegate.m文件

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    NSLog(@"Inside didfinishwithoptions"); 
    DBSession* dbSession = [[[DBSession alloc] initWithAppKey:@"APP-KEY" 
               appSecret:@"APP-SECRET" 
                root:kDBRootAppFolder] // either kDBRootAppFolder or kDBRootDropbox 
         autorelease]; 
    [DBSession setSharedSession:dbSession]; 
    // Override point for customization after application launch. 

    // Add the view controller's view to the window and display. 
    [self.window addSubview:viewController.view]; 
    [self.window makeKeyAndVisible]; 

    return YES; 
} 

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url 
{ 
    NSLog(@"Inside handleOpenURL"); 
    return NO; 
} 

回答

2

我認爲,當你設定目標到iOS 4.2或更高版本application:handleOpenURL:不叫代碼段。改爲使用application:openURL:sourceApplication:annotation:

更多在UIApplicationDelegate docs

UPDATE:
你仔細檢查你的應用程序的plist文件的CFBundleURLTypes入口?它應該像這樣的事情:

<key>CFBundleURLTypes</key> 
<array> 
    <dict> 
    <key>CFBundleURLName</key> 
    <string>DropBoxURLScheme</string> 
    <key>CFBundleURLSchemes</key> 
    <array> 
     <string>db-something</string> 
    </array> 
    </dict> 
</array> 

比你初始化會話(注意,上面的「東西」的一部分被用作應用程序鍵):

DBSession* dbSession = [[[DBSession alloc] initWithAppKey:@"something" appSecret:@"APP_SECRET" root:ACCESS_TYPE] autorelease]; 

如果上面沒有幫助,你必須做錯別的事情。然後更仔細地按照DropBox的教程。

相關問題