2015-01-09 48 views
5

以下操作不会在Chrome浏览器39.0.2171.50上为iOS 8.1.2(12B440), 打开弹出式窗口/新标签页/做任何事情,但它似乎在Safari上工作同样的设备:

<button ng-click="$auth.$authWithOAuthPopup('facebook')">Login with Facebook</button> 

见plnkr:http://plnkr.co/edit/Ejd7fsyTHf6Ohn0F25Wy?p=preview

这是与Chrome或火力地堡/ AngularFire一个bug,或我错误地做什么?

我从here看到,这可能是一个Chrome问题,但我不能让$authWithOAuthRedirect()工作;见:http://plnkr.co/edit/9dd0W8X5k33LFBcCLmzs?p=preview

两个弹出和重定向桌面版Chrome 39.0.2171.95

+1

我曾与在优胜美地的Safari同样的问题。使用$ authWithOAuthRedirect结束。 – webduvet 2015-01-10 07:29:57

回答

4

火力地堡工作不支持弹出式窗口的所有平台。如果检测到不支持的平台,authWithOAuthPopup()方法将返回代码为TRANSPORT_UNAVAILABLE的错误,表示您应该尝试使用不同的传输方式进行身份验证,例如浏览器重定向。

+0

够公平的。那是在文档的某个地方吗?你知道具体是什么导致这在某些浏览器中失败吗? – 2015-01-12 23:45:30

+1

@MurraySmith不幸的是,它没有很好的记录,但出现在Firebase文档的一些地方,例如[错误列表](https://www.firebase.com/docs/web/guide/user-auth。 HTML)。 – 2015-01-13 00:35:44

+3

不幸的是,一些浏览器不支持此传输的必要功能。 PhoneGap/Cordova/Ionic需要一个垫片(InAppBrowser插件)才能使用'window.open'。 Chrome在iOS中同样被禁用,因为它历来没有可靠的'window.open(...)'和安全的跨帧postMessage。同样,重定向不适用于PhoneGap/Cordova应用程序,因为没有机制将浏览器从外部公共互联网URL重定向回到装载PhoneGap应用程序的本地文件系统。 – 2015-01-13 00:39:38

2

荫不知道IOS的,但如果你使用Android装置和离子和火力点以来,运行以下命令来解决该问题:

ionic plugin add cordova-plugin-inappbrowser 
相关问题