CallBack 不适用于 Galaxy Tab,但适用于所有其他设备
我正在我的全新 Galaxy Tab 上测试我的应用程序,但遇到了一些奇怪的事情。
我的应用程序中集成了 Twitter。它的主要作用是打开一个 WebView 并使用 Oauth 进行身份验证。之后,它将带有秘密令牌的回调发送回我的应用程序,我将其用于发推文的目的。您可以在此处获取有关我如何执行此操作的更多信息: Twitter 身份验证后回调
这适用于所有设备,但在 Galaxy Tab 上它不会返回到我的应用程序。相反,它在浏览器中显示“网页不可用”页面,并在地址栏中显示正确的回调 URL。
为什么它在 Galaxy Tab 上不起作用?
编辑:
是否是因为 Galaxy Tab 使用自己的浏览器不支持 CallBack?
I'm testing my app out on my brand new Galaxy Tab and I encountered something strange.
I have Twitter integration in my app. What it basically does is open a WebView and use Oauth to autheticate. After that it sends a CallBack back to my app with the secret token and there I use it for tweeting purposes. You can get more info about how I do this here: CallBack after Twitter authentication
This workes on all devices, but on the Galaxy Tab it doesn't go back to my app. In stead, it gives me the "Web page not available" page in the browser with the correct CallBack URL in the adresbar.
How come it doesn't work on the Galaxy Tab?
EDIT:
Could it be because the Galaxy Tab use their own browser that doesn't support CallBack?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我有点惊讶它可以在任何设备上工作...回调是作为对正常 HTTP 请求的响应发送的,即 302 重定向。这与用户点击不同……我不认为您可以依赖浏览器触发重定向意图。
除非您很快找到解决方法,否则我强烈建议切换到 XAuth。它更适合移动应用程序。 Twitter 的 OAuth 流程每一步都假设使用 PC Web 浏览器,这在移动平台上始终是一种糟糕的用户体验。
I'm a little surprised it works on any device... the callback is sent as the response to a normal HTTP request, i.e. a 302 redirect. This is not the same thing as a user click... I don't see that you can ever rely on the browser firing an Intent for a redirect.
Unless you quickly find a workaround I strongly suggest switching to XAuth. It's a far better fit for mobile apps. Twitter's OAuth flow assumed a PC web browser every step of the way, which is always a horrible user experience on a mobile platform.
Twitter 库通过检查网络浏览器中打开的链接来工作。一种最简单的检查方法是在实现 WebViewClient 的代码中放置一个断点。如果断点命中 onLoadResource 函数,则存在其他错误,否则您的想法是正确的。
The twitter library works by inspecting the links which are being open in the webbrowser. One easiest way to check would be Place a breakpoint the code which implements the WebViewClient. If the break point hits on the function onLoadResource then there is some other bug or else what you are thinking is correct.