Spotify SDK演示Swift可以工作,但无法转换为基于故事板的项目

hc2pp10m  于 5个月前  发布在  Swift
关注(0)|答案(1)|浏览(48)

计划: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应用程序,我没有像演示中那样使用programmation创建视图,我使用故事板(唯一的区别与演示代码)我设置一切完全相同,它建立和它运行在iPhone设备上很好,没有任何错误或任何警报消息,当我点击“连接”,它要求允许使用“Spotify”预期,我回答是的,它切换到Spotify并开始播放它切换回我的应用程序的歌曲,仍然显示“连接”按钮调试时,我在每个sessionManager,应用程序方法和appRemote事件函数中设置断点,显然没有一个被捕获。当我在演示项目中做同样的事情时,它停在断点处
我的结论是:
代理不工作,似乎没有被正确分配,因为没有事件被捕获什么奇怪的是?它的每一行完全相同的代码作为演示项目,只有我使用场景,所以我有一个SceneDelegate.swift文件在我的项目。
我尝试将一些代码(如SceneDelegate文件中的委托分配)转移到相应的事件中,但效果不佳,并且openURL方法与应用程序中的open 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的例子,老实说,他们是相当薄找到解决方案。
或者至少给予点提示,我被卡住了。

h79rfbju

h79rfbju1#

看起来this github answer可能对你有帮助。它告诉你需要进入场景级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: [:])
}

字符串

相关问题