Spotify 登录错误 -canOpenURL
Posted
技术标签:
【中文标题】Spotify 登录错误 -canOpenURL【英文标题】:Spotify login error -canOpenURL 【发布时间】:2016-05-16 19:11:33 【问题描述】:我正在尝试了解 Spotify 的登录/授权过程。我正在关注一个教程并最终得到了这段代码。当我尝试登录时,我收到此错误: -canOpenURL:URL 失败:“spotify-action://” - 错误:“(null)”
我检查了 repo,发现我需要在 LSApplicationQueriesSchemes 下的 Info.plist 中添加 spotify-action 和 spotify。但是在这样做之后,我仍然收到上述错误。
class SpotifyLoginViewController: UIViewController, SPTAuthViewDelegate
let kclientID = " my client id"
let kcallbackURL = "my callback"
@IBAction func loginSpotify(sender: AnyObject)
SPTAuth.defaultInstance().clientID = kclientID
SPTAuth.defaultInstance().redirectURL = NSURL(string: kcallbackURL)
SPTAuth.defaultInstance().requestedScopes = [SPTAuthStreamingScope]
SPTAuth.defaultInstance().sessionUserDefaultsKey = "SpotifySession"
//SPTAuth.defaultInstance().tokenSwapURL = NSURL(string: ktokenSwapURL) //you will not need this initially, unless you want to refresh tokens
// SPTAuth.defaultInstance().tokenRefreshURL = NSURL(string: ktokenRefreshServiceURL)//you will not need this unless you want to refresh tokens
let spotifyAuthViewController = SPTAuthViewController.authenticationViewController()
spotifyAuthViewController.delegate = self
spotifyAuthViewController.modalPresentationStyle = UIModalPresentationStyle.OverCurrentContext
spotifyAuthViewController.definesPresentationContext = true
presentViewController(spotifyAuthViewController, animated: false, completion: nil)
func authenticationViewController(authenticationViewController: SPTAuthViewController!, didLoginWithSession session: SPTSession!)
print("Logged In")
func authenticationViewController(authenticationViewController: SPTAuthViewController!, didFailToLogin error: NSError!)
print("Failed to Log In")
print(error)
authenticationViewController.clearCookies(nil)
func authenticationViewControllerDidCancelLogin(authenticationViewController: SPTAuthViewController!)
print("User Canceled Log In")
authenticationViewController.clearCookies(nil)
【问题讨论】:
【参考方案1】:如果您的设备上未安装 Spotify 应用程序,则打开 Spotify 的操作将失败,并且控制台将打印错误:-canOpenURL: failed for URL: "spotify-action://" - error: "(空值)”。任何未安装在您的设备上的应用都会发生这种情况,并且会尝试启动不存在的应用。
【讨论】:
【参考方案2】:如果您的设备上未安装 Spotify 应用。因此您无法使用 URL“spotify-action://”打开 Spotify Original 应用程序。 您可以使用网络浏览器登录。 它将打开 spotify.com 并在身份验证后重定向到重定向 url(应用程序链接)。
您只需更改一个参数。 sessionManager.initiateSession(with: scope, options: .clientOnly, presenting: self) 该参数是选项。 请将其更改为 .default。 因此它将打开 safari 浏览器以登录 spotify 帐户。 我希望这会有所帮助。
【讨论】:
以上是关于Spotify 登录错误 -canOpenURL的主要内容,如果未能解决你的问题,请参考以下文章
Spotify 登录 Spotify iOS sdk beta 版本 3