Dropbox 的问题 API
Problems with the Dropbox API
我正在尝试在我的应用程序中使用 Dropbox API。我的 ViewController.swift 中有一个按钮,当用户连接到他的保管箱帐户时,我想要一个按钮来显示状态 "Connect" 或 "Disconnect"。问题是,当用户按下按钮(表示连接)并填写 Dropbox 提供给用户的表单时,按钮不会将状态更改为 "Disconnect"。所以这是代码:
AppDelegate:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
let appKey = "myappkey"
let appSecret = "mysecretappkey"
let dropboxSession = DBSession(appKey: appKey, appSecret: appSecret, root: kDBRootAppFolder)
DBSession.setShared(dropboxSession)
return true
}
private func application(application: UIApplication, openURL url: URL, sourceApplication: String?, annotation: AnyObject) -> Bool{
if DBSession.shared().handleOpen(url as URL!) {
if DBSession.shared().isLinked() {
NotificationCenter.default.post(name: NSNotification.Name(rawValue: "didLinkToDropboxAccountNotification"), object: nil)
return true
}
}
return false
}
ViewController:
override func viewDidLoad() {
super.viewDidLoad()
NotificationCenter.default.addObserver(self, selector: #selector(ViewController.handleDidLinkNotification(notification:)), name: NSNotification.Name(rawValue: "didLinkToDropboxAccountNotification"), object: nil)
if DBSession.shared().isLinked() {
bbiConnect.title = "Disconnect"
}
}
func handleDidLinkNotification(notification: NSNotification) {
bbiConnect.title = "Disconnect"
}
@IBAction func connectToDropbox(_ sender: AnyObject) {
if !DBSession.shared().isLinked() {
DBSession.shared().link(from: self)
}
else {
DBSession.shared().unlinkAll()
bbiConnect.title = "Connect"
}
}
当我填写表格以登录我的 Dropbox 帐户时,出现此错误:
DBDemo[78292:2358549] [ERROR] DropboxSDK: app delegate does not implement application:openURL:sourceApplication:annotation:
我使用的是 1.3.14 版本的 Dropbox SDK
错误提示您没有调用正确的签名
private func application(application: UIApplication, openURL url: URL, sourceApplication: String?, annotation: AnyObject) -> Bool{
更改您的签名并在此处尝试一次使用 Any
或 [string:Any]
func application(_ application: UIApplication, open url: URL,
sourceApplication: String?, annotation: Any) -> Bool
我正在尝试在我的应用程序中使用 Dropbox API。我的 ViewController.swift 中有一个按钮,当用户连接到他的保管箱帐户时,我想要一个按钮来显示状态 "Connect" 或 "Disconnect"。问题是,当用户按下按钮(表示连接)并填写 Dropbox 提供给用户的表单时,按钮不会将状态更改为 "Disconnect"。所以这是代码:
AppDelegate:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
let appKey = "myappkey"
let appSecret = "mysecretappkey"
let dropboxSession = DBSession(appKey: appKey, appSecret: appSecret, root: kDBRootAppFolder)
DBSession.setShared(dropboxSession)
return true
}
private func application(application: UIApplication, openURL url: URL, sourceApplication: String?, annotation: AnyObject) -> Bool{
if DBSession.shared().handleOpen(url as URL!) {
if DBSession.shared().isLinked() {
NotificationCenter.default.post(name: NSNotification.Name(rawValue: "didLinkToDropboxAccountNotification"), object: nil)
return true
}
}
return false
}
ViewController:
override func viewDidLoad() {
super.viewDidLoad()
NotificationCenter.default.addObserver(self, selector: #selector(ViewController.handleDidLinkNotification(notification:)), name: NSNotification.Name(rawValue: "didLinkToDropboxAccountNotification"), object: nil)
if DBSession.shared().isLinked() {
bbiConnect.title = "Disconnect"
}
}
func handleDidLinkNotification(notification: NSNotification) {
bbiConnect.title = "Disconnect"
}
@IBAction func connectToDropbox(_ sender: AnyObject) {
if !DBSession.shared().isLinked() {
DBSession.shared().link(from: self)
}
else {
DBSession.shared().unlinkAll()
bbiConnect.title = "Connect"
}
}
当我填写表格以登录我的 Dropbox 帐户时,出现此错误:
DBDemo[78292:2358549] [ERROR] DropboxSDK: app delegate does not implement application:openURL:sourceApplication:annotation:
我使用的是 1.3.14 版本的 Dropbox SDK
错误提示您没有调用正确的签名
private func application(application: UIApplication, openURL url: URL, sourceApplication: String?, annotation: AnyObject) -> Bool{
更改您的签名并在此处尝试一次使用 Any
或 [string:Any]
func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool