Spotify SDK Demo Swift 可以工作,但不能翻译为基于 Storyboard 的项目
Posted
技术标签:
【中文标题】Spotify SDK Demo Swift 可以工作,但不能翻译为基于 Storyboard 的项目【英文标题】:Spotify SDK Demo Swift works but cannot be translated to Storyboard-based project 【发布时间】:2020-10-17 19:01:41 【问题描述】:计划:Spotify Premium 国家/地区:比利时设备:iPhone 11 Pro Max 操作系统:ios 13.5 + macOS Catalina
亲爱的
我在 Xcode (https://github.com/spotify/ios-sdk) 中正确安装了 iOS SDK,并正确设置了服务器令牌交换和刷新 => demo swift login 运行良好。
现在我正在尝试将其集成到我的 iOS 应用程序中,但它根本不起作用。我测试了所有可能的东西,并将其分解为对演示的最小更改,以更好地了解可能导致它失败的原因。见下文:
我设置了一个基本的 Xcode iOS 应用程序 我不使用在演示中使用编程创建视图,我使用情节提要(仅与演示代码不同) 我将所有内容都设置为完全相同,它构建并在 iPhone 设备上运行良好,没有任何错误或任何警报消息 当我单击“连接”时,它会按预期要求使用“Spotify”的权限,我回答是,它切换到 Spotify 并开始播放歌曲 它切换回我的应用程序并仍然显示“连接”按钮 调试时,我在每个 sessionManager、应用程序方法和 appRemote 事件函数都设置了断点,显然没有一个被捕获。当我在演示项目中执行相同操作时,它会在断点处停止
我的结论:
代表不工作并且似乎没有正确分配,因为没有捕获到任何事件 有什么奇怪的?每行代码与演示项目完全相同,只是我使用场景,所以我的项目中有一个 SceneDelegate.swift 文件。
我尝试将一些代码(例如对 SceneDelegate 文件的委托分配)转移到相应的事件中,但效果不佳,并且 openURL 方法与应用程序打开 url 方法中的方法不同,所以我没有知道如何在场景级别翻译 openURL 调用:
应用级openURL
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool
rootViewController.sessionManager.application(app, open: url, options: options)
return true
场景级openURL
func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>)
我迷路了,我花了 3 天时间尝试一切,但没有任何效果。顺便说一句,我经常使用 Web API 没有任何问题,所以我非常了解 Spotify 身份验证过程。
有人可以帮我吗?因为 iOS 示例,老实说,它们很难找到解决方案。
或者至少请给我一些提示,我被卡住了..
非常感谢,尼科
【问题讨论】:
【参考方案1】:看起来this github 的答案可能会对您有所帮助。它告诉您需要进入场景级别 openURL 的内容:
func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>)
print("Opened url")
guard let url = URLContexts.first?.url else
return
lobbyAdminVC.sessionManager.application(UIApplication.shared, open: url, options: [:])
希望对您有所帮助,或者其他帖子中的答案/cmets 有帮助!
【讨论】:
以上是关于Spotify SDK Demo Swift 可以工作,但不能翻译为基于 Storyboard 的项目的主要内容,如果未能解决你的问题,请参考以下文章
如何降低或提高 Spotify SDK Swift 中的音乐音量
Spotify iOS SDK Swift 显示所有 (!) 播放列表 (20+)
如何使用 Spotify SDK 和 Swift 3 正确处理令牌刷新。错误代码 = 3840