你好Stackoverflowers!
我写了一个相对简单的应用程序,包含一个登录文本字段,密码文本字段以及登录按钮的。
我的目标是,当用户输入登录信息和触摸登录按钮,应用程序将用户登录到我指定的网站,并在不同的意图或网页视图中打开它。 我目前的实施打开了一个新的活动具有的WebView,并通过在登录信息。 我的代码是新的活动如下:
setContentView(R.layout.web);
try {
//add the users login information(username/pw) to a List
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("email", "random@gmail.com"));
nameValuePairs.add(new BasicNameValuePair("password", "password1"));
//declare a new HttpClient
HttpClient httpclient = new DefaultHttpClient();
//set the HttpPost to the desire URL
HttpPost httppost = new HttpPost(URL_STRING);
//set the entity to a new UrlEncodedForm with the login info and type
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs, HTTP.UTF_8));
//store the response
HttpResponse response = httpclient.execute(httppost);
//get the data from the response
String data = new BasicResponseHandler().handleResponse(response);
//get the webview from the xml
WebView webview = (WebView)findViewById(R.id.webView);
webview.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
view.loadUrl(url);
return true;
}
});
//load the return website from the server
webview.loadDataWithBaseURL(httppost.getURI().toString(), data, "text/html", HTTP.UTF_8, null);
这成功登录我的URL(HTTPS站点)和打开的页面,但是如果你尝试点击任何网站,它把你返回到登录页面中的WebView的按钮,它不会显示多网站(图表/图形)上的属性。
难道这是一个cookie的事情吗?
那么,有没有办法通过一个新的intent发送的登录信息? 还是有我的WebView实现的解决方案?
(这里是从来没有得到一个明确的答案比较类似(ISH)问题的Android SSO(单点登录)的应用程序 )
感谢您的时间! 我真的很感谢你考虑看看我的问题。
编辑 :那么giseks的解决方案为我让网页留的WebView内,但是图表/图形/等的页面仍然没有显示上,该解决方案是为启用JavaScript的WebSettings一样简单
webview.getSettings().setJavaScriptEnabled(true);
下面是谷歌的Android的WebSettings API供参考: WebSettings
这帮助了我,我希望它可以帮助你!