在使用JS API时,使用Linkedin登录不会触发iOS Safari上的回调

Bla*_*ird 8 mobile-safari linkedin linkedin-jsapi

我通过JS API在网站上使用SignIn和Linkedin.它在我测试的几个桌面浏览器(Windows上的Chrome和FF,MacOS上的Safari)以及稍微过时的Android Chrome上运行良好.但它在iOS Safari上失败了(我使用的是iOS 7).

问题是在iOS Safari上,IN.User.authorize没有执行作为参数传递的回调.

这条线看起来像这样: IN.User.authorize(this._getProfileData, this);

_getProfileData 在上面提到的桌面浏览器和Android Chrome上执行,但不在iOS Safari上执行.

这个问题甚至可以在没有iOS的情况下重现:通过Chrome的开发者工具,在iPhone和iPad的设备模式下.

有线索吗?

小智 4

不幸的是,由于 Javascript 在跨窗口通信过程中暂停的方式,LinkedIn 的 JS SDK 与 iOS 5+ 不兼容。您将需要回退到服务器端 REST 调用以确保 100% 的平台兼容性。

  • +1 - 这是一个巨大的警告,应该在 LinkedIn JS SDK 文档中明确指出,这样人们就不会浪费数天时间将其实现为解决方案(就像我刚刚所做的那样)只是为了发现它不起作用在 iOS 上。文档只是说 SDK 支持 Safari 5+。LinkedIn 的支持/文档​​很糟糕。:-/ (4认同)