我在Uber上创建了一个开发者账户,得到了客户端ID。在 info.plist
中配置了以下设置
<key>UberClientID</key>
<string>MyClientID</string>
<key>UberCallbackURI</key>
<string>MyCallBackURI</string>
不确定在 UberCallbackURI 中放入什么,但按照链接中的教程进行操作:
http://iosdevelopertips.com/cocoa/launching-your-own-application-via-a-custom-url-scheme.html
我还在appDidFinishLauncing中配置了以下设置:
Configuration.setSandboxEnabled(true)
只需输入一个简单的按钮即可呼叫优步。
let behavior = RideRequestViewRequestingBehavior(presentingViewController: self)
behavior.modalRideRequestViewController.rideRequestViewController.delegate = self
// Optional, defaults to using the user’s current location for pickup
let location = CLLocation(latitude: 37.787654, longitude: -122.402760)
let parameters = RideParametersBuilder().setPickupLocation(location).build()
let button = RideRequestButton(rideParameters: parameters, requestingBehavior: behavior)
self.view.addSubview(button)
我还在视图控制器中实现了以下委托:
extension ViewController : RideRequestViewControllerDelegate {
func rideRequestViewController(rideRequestViewController: RideRequestViewController, didReceiveError error: NSError) {
let errorType = RideRequestViewErrorType(rawValue: error.code) ?? .Unknown
// Handle error here
switch errorType {
case .AccessTokenMissing:
print("Access Token Missing")
break
// No AccessToken saved
case .AccessTokenExpired:
print("Access Token Expired")
break
// AccessToken expired / invalid
case .NetworkError:
print("Network error")
break
// A network connectivity error
case .NotSupported:
print("Not Supported")
break
// The attempted operation is not supported on the current device
case .Unknown:
print("Unknown")
break
// Other error
}
}
}
当我点击按钮时,SDK 会将我发送到优步的登录屏幕。当我登录时。
它始终打印来自委托的"访问令牌丢失"。
有人可以帮助我吗?
您收到该错误是因为登录失败。我认为你的问题与你的UberCallbackURI有关。在开发人员仪表板的"授权"选项卡上,需要设置重定向 URL。您还需要将其作为Info.plist
中UberCallbackURI的值。
我建议使用特定于您的应用程序的唯一 url 方案(如您提供的链接中所述)