我正在构建一个Android应用,使用OAuth向GitHub用户签名。我按照here的说明进行操作。作为该过程的第一部分,我向用户发送了URL
https://github.com/login/oauth/authorize?scope=repo&client_id=MY_CLIENT_ID
但是,当我在Android设备上登录时,Authorize xxxx
按钮似乎显示为灰色,我无法点击它。有没有人知道为什么会这样? (下面的大截图)
我认为按钮可能不会在之前显示为灰色,第一次运行应用程序并登录。但是,我无法确定是因为我匆忙。
答案 0 :(得分:3)
因此,我将链接粘贴到计算机上的Chrome中,并且OAuth流程运行正常。我注意到按钮一开始是灰色的,但随后变成了亮绿色。这让我想知道:Android WebView默认启用了JavaScript吗?果然,它不是。我发现this answer详细说明了如何启用JS。这是使一切运转起来的关键路线:
webView.getSettings().setJavaScriptEnabled(true);
答案 1 :(得分:0)
我绝对支持@ james-ko所说的-必须为WebView启用JS 。
但是有时没有帮助。我发现了更多信息,很乐意在这里分享。
相似的故事-我有一个应使用GitHub OAuth登录用户的应用程序,除“授权”按钮外,其他一切正常-在某些情况下,无论应用了什么设置,它都保持禁用状态。
以下是摘要:
在设置为22和23的模拟器上,无论设置和用户行为如何,该按钮始终处于禁用状态(尽管我没有尝试使用24-27)。
它在API 28和29的模拟器上运行良好。
在实际设备Pixel 3(API 29)上,该按钮最初被禁用,并且一段时间没有任何反应。但是,当我在随机的地方用两次胶带将屏幕录音时,它就启用了。重新启动的应用程序会重现这种情况:最初禁用的按钮->在屏幕上点击->按钮被启用。
显然,其中涉及一些反欺诈机制。
但是它给最终用户带来了很差的体验,它看起来像是应用程序中的错误,我们对此无能为力:-/