|
|
1
1
这是我对这个问题的第二个答案。我相信,我最初的答案为对话提供了一些价值,这就是为什么我要离开它,但它仍然没有持续解决facebook授权不起作用的问题。 一致的解决方案是修改Ti.Facebook的官方模块。我将提交此更改的拉取请求(1行),但现在,您可以在此处获取工作模块: 这始终允许用户通过显式设置登录行为来授权使用浏览器,而不是通过快速应用程序切换来使用本地facebook应用程序。 This is actually the intent of Facebook's developers. 当我尝试使用本机应用程序登录时,我无法确定是什么原因导致它失败-它应该尝试下一个选项,即浏览器-但这是有效的,也不需要TiFacebookButton。 我希望它能帮助别人! |
|
|
2
1
编辑:这个答案不能解决原来的问题。我把它放在这里,以防在使用Ti.Facebook模块时遇到相关困难。看看我的另一个答案,真正解决这个问题。 结束编辑 我在上面评论过,但在这样做之后遇到了一些更奇怪的行为,结果是我无法可靠地使用给定的解决方法(fbHaxButton)。我想解释一下在我的案例中发生了什么,并展示我自己的解决方法(这也不好看)。我们两个人的根本原因可能是一样的。 我还没有考虑过Android,所以这个答案是针对iOS的。 当我开始这个过程时,我得出的结论是,授权是正确地在safari中打开facebook网站以允许授权,但不是在返回时触发登录事件。为了处理这个问题,我已经实现了以下几点:
所以,最初我正在启动并监听一个名为“登录”的事件,根据文档,facebook模块应该会在授权完成后启动该事件。 在我的例子中,这个事件是在我的应用程序处于后台时,在调用authorize之后,但在用户真正在facebook中单击“OK”之前被触发的。我的监听器会对这个事件做出响应(日志记录等),但似乎发生在一个单独的线程中,或者以某种方式与我的应用程序断开连接,因为它从未将结果传递给UI。我使用的是Q.js(kriw kowal),我相信这就是断开连接的地方。 不再听“登录”,只需处理我自己的合成事件就解决了我的问题。 我觉得这很难解释。如果您对此有反馈,以及我如何才能更清楚地了解我认为正在发生的事情,或者如果您认为我得出了错误或不完整的结论,请告诉我-我会尝试更新此答案,使其更好。 |