Spotify Web API - 通过本机移动应用而不是浏览器对用户进行身份验证?

时间:2018-06-02 07:27:14

标签: javascript ios spotify

我正在测试以下示例,通过登录并重定向到身份验证屏幕来验证用户 - http://jsfiddle.net/JMPerez/j1sqq4g0/

此示例使用带有以下脚本的回调页面:

(function() {
  var hash = {};
  window.location.hash.replace(/^#\/?/, '').split('&').forEach(function(kv) {
    var spl = kv.indexOf('=');
    if (spl != -1) {
      hash[kv.substring(0, spl)] = decodeURIComponent(kv.substring(spl+1));
    }
  });

  console.log('initial hash', hash);

  if (hash.access_token) {
    window.opener.postMessage(
      JSON.stringify({
        type:'access_token',
        access_token: hash.access_token,
        expires_in: hash.expires_in || 0
      }), 
      'http://fiddle.jshell.net'
    );
    window.close();
  }
})();

在手机上试用时,它会在Safari中打开一个新标签。是否可以检查应用程序是否安装在iOS上并通过它登录?将使这个过程更快。

正如在这里的一个问题中看到的那样,它似乎已经解决但却无法理解触发它的原因是什么? - https://github.com/spotify/web-api/issues/718

谢谢!

1 个答案:

答案 0 :(得分:1)

总结一下这里是一个汇总的答案:

  • iOS 不允许查看您的设备上安装了哪些应用,Android 也不允许。
  • 使用 universal links(在 Android 和 iOS 上),一般来说您可能会生成一个打开应用程序的链接,但为此,相应的应用程序需要在您的设备上注册此连接。
  • 特别是对于 Spotify,我认为 Spotify 应用程序没有注册这样的链接。原生应用仅针对身份验证触发的情况并不常见,因此 Spotify 不太可能这样做。