【问题标题】:React-Native Spotify SDK iOS: Dismiss auth windowReact-Native Spotify SDK iOS:关闭身份验证窗口
【发布时间】:2017-09-16 11:23:42
【问题描述】:

我一直在使用以下模块开发一个 react-native 应用程序:

https://github.com/viestat/react-native-spotify

目前,应用程序打开身份验证窗口以登录到 spotify。我确实得到了成功的回报,但我很困惑我现在如何摆脱弹出的登录窗口。我知道它应该重定向回我的应用程序,但它只是与注销/我的帐户按钮保持在同一个窗口上。

任何想法我将如何在返回的成功消息上关闭此窗口?

SpotifyAuth.setClientID('*****','*****', ['streaming', 'playlist-read-private'], (error)=>{
          if(error){
            console.log(error);
          } else {
            console.log('success');
          }
        });

【问题讨论】:

标签: ios reactjs react-native spotify


【解决方案1】:

如果您查看代码,登录屏幕(确切地说是SpotifyLoginViewController)会在this line of code 处关闭屏幕。根据这里的逻辑,如果您传递给 setClientID API 的 redirectURL 与您在 Spotify 开发者帐户中定义的重定向 URI 不匹配(请参阅他们的 authorization guide) - 屏幕将不会被解雇。

我建议你在它检查 url 方案之前在这个函数中设置一个断点,看看那里发生了什么。可能是您的帐户配置不正确,或者正在向此 API 发送错误的 URL(或此包不符合预期格式的 URL)。

【讨论】:

  • 我已将我的 URL 方案添加到我的项目中。我会截取一些截图,以防它不应该是这样。我确实尝试了多种方法。在某些情况下,它会说“URI 无效”,而在与我的方案匹配的情况下,它不会被忽略。
  • 我仍然认为最好的方法是调试这段代码;看看你从url.scheme 得到了什么,你在myScheme 得到了什么,其他一切都只是推测:) 我从来没有使用过 Spotify API 或这个包,所以我不确定我是否能够除此之外的帮助.. 您需要知道从 Spotify 返回的 ur.scheme 以了解问题所在
  • 可能是个愚蠢的问题。我将如何在 obj-c 中执行 var_dump/console.log 类型的事情?
  • 您可以使用NSLog,它相当于console.log。例如,将值分配给myScheme 后,添加以下行:NSLog(@"myScheme: %@, URL scheme: %@", myScheme, url.scheme);,但您只会在 iOS 日志中看到它(而不是在 chrome 中)。使用断点并检查值也应该很简单 - 只需单击行号以添加断点并从 Xcode 运行项目
  • 查看添加的图片。
【解决方案2】:

您的重定向 URL 似乎配置错​​误。

  1. 确保在 Spotify 我的应用程序仪表板中输入了您的 URI。

  2. 确保您的 URI 符合以下要求:

    • URI 中的所有字符都应小写。
    • 您的 URI 前缀(第一个冒号之前的部分)对于您的应用程序必须是唯一的。它不能是像 http 这样的通用前缀。 您的 URI 前缀只能由您的应用程序用于验证 Spotify。如果您的应用程序已经为其他用途处理了 URL 方案,则不应回收它。
    • 最好在其中包含应用程序的名称。
    • 您还应该有一个指向 URI 的路径组件(第一组正斜杠之后的部分,例如 your-app://callback

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-03
    • 1970-01-01
    • 1970-01-01
    • 2014-04-30
    • 2017-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多