Spotify SDK Demo Swift 可以工作,但无法转换为基于 Storyboard 的项目

问题描述 投票:0回答:2

计划:Spotify Premium 国家/地区:比利时 设备:iPhone 11 Pro Max 操作系统:iOS 13.5 + macOS Catalina

亲爱的大家

我在 Xcode 中正确安装了 iOS SDK (https://github.com/spotify/ios-sdk),并正确设置了服务器令牌交换和刷新 => 演示快速登录效果很好。

现在我正在尝试将其集成到我的 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>) {
    
    
}

我迷路了,我花了三天时间尝试了一切,但没有任何效果。顺便说一句,我经常使用 Web API,没有任何问题,所以我非常了解 Spotify 身份验证过程。

有人可以帮助我吗?因为老实说,iOS 示例很难找到解决方案。

或者至少请给我提示,我被困住了..

非常感谢,尼科

ios swift xcode sdk spotify
2个回答
0
投票

看起来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: [:])
}

希望有帮助,或者其他帖子的答案/评论之一有帮助!


0
投票

你能找到解决方法吗?我也有同样的问题

© www.soinside.com 2019 - 2024. All rights reserved.