Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android SSO登录弹出窗口_Android_Url_Popup_Single Sign On - Fatal编程技术网

Android SSO登录弹出窗口

Android SSO登录弹出窗口,android,url,popup,single-sign-on,Android,Url,Popup,Single Sign On,我需要编写一个Android应用程序,该应用程序与具有SSO(单点登录)身份验证的基于web的系统集成。系统将弹出一个网页,提示输入用户名和密码,如果登录成功,则会使用加密的会话ID设置一个(基于内存的)cookie,然后弹出窗口将使用javascript window.close()函数调用“杀死”自己。所有标准的东西实际上,我已经在Windows上编写了Excel VBA应用程序,这些应用程序与该系统配合得非常好-用户想要登录,SSO服务器将弹出一个IE窗口,用户提供其凭据,窗口消失,从那时

我需要编写一个Android应用程序,该应用程序与具有SSO(单点登录)身份验证的基于web的系统集成。系统将弹出一个网页,提示输入用户名和密码,如果登录成功,则会使用加密的会话ID设置一个(基于内存的)cookie,然后弹出窗口将使用javascript window.close()函数调用“杀死”自己。所有标准的东西实际上,我已经在Windows上编写了Excel VBA应用程序,这些应用程序与该系统配合得非常好-用户想要登录,SSO服务器将弹出一个IE窗口,用户提供其凭据,窗口消失,从那时起,从Excel到远程系统的集成工作正常,因为创建了会话cookie

我试着用Android应用程序做同样的事情。我用WebView调用了SSO登录页面,它显示得非常好,我登录了,希望登录弹出页面消失,我的Android应用程序继续。然而,我的问题是,在Android中,对windows.close()的javascript调用实际上被忽略,它所做的只是在屏幕上留白,让它显示出来。没关系,我不在乎窗口是否仍然存在,只要创建了我的cookie,并且用户可以轻松导航回我的应用程序。 所以我的问题是:

如何弹出URL,让用户登录到SSO,然后轻松地让用户返回到我的应用程序

我读了很多书,做了很多实验,但都遇到了困难

谢谢


Steve

可能您已经知道了,但是默认情况下,WebView小部件中的JavaScript是关闭的。如果要启用JavaScript,请在
WebView
实例上调用
getSettings().setJavaScriptEnabled(true)
,以启用JavaScript。 我已经编写了twitter客户端,他们使用OAuth进行身份验证。登录后,他们只需将浏览器重定向到您提供的页面,即可注册此操作的活动。
在您的情况下,如果他们只是关闭窗口,可能会显示堆栈中以前的活动。

是的,感谢关于启用Javascript的提示,我在最初的帖子中忽略了说我已经这样做了。我的问题是,我希望用户在登录后返回到我的应用程序,而不是进入网页。我不知道该怎么做!使用WebView,您可以捕获重定向(这将在登录后发生),并调用您的活动来显示您想要的内容。使用方法setWebViewClient(),您可以使用实现的方法onLoadResource()设置WebViewClient对象,并可以从中调用您的活动我仍在努力,我可以看到WebViewClient和WebChromeClient应该如何工作,但我仍然无法得到一个适用于我的情况的简单示例。我启动了一个WebView,它是一个带有用户名/密码字段和登录按钮的登录页面。当用户单击登录按钮时,我希望检测该活动并返回到我的应用程序。我尝试过重写各种WebView客户端和WebChromeClient方法来实现这一点,但要么什么都没有发生(网页只是变为空白),要么WebView甚至没有弹出。为什么这么难?请用你的代码更新你的问题。我记得我在其中一个方法中使用了setWebViewClient(),它成功了。您是否尝试覆盖所有方法并在其中放置Toast消息?