我想在WebView
中打開一個URL,但我無法這樣做,我認爲這是因爲會話不被維護。 我正在將活動中的用戶名,密碼和用戶標識發送到服務器。這裏的代碼..Android:登錄應用程序後無法保持會話
public class ServiceActivity extends Activity {
private Button button_back;
private Button button_submit_user_pass;
private EditText edit_id_code;
private String contents;
private String format;
private String username;
private String password;
private String id;
public static HttpClient client;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.qr_code_view);
edit_id_code = (EditText) findViewById(R.id.editText_id);
button_back = (Button) findViewById(R.id.button_back);
button_submit_user_pass = (Button) findViewById(R.id.button_submit_user_pass);
Intent user_pass = getIntent();
username = user_pass.getStringExtra("user");
password = user_pass.getStringExtra("pass");
button_submit_user_pass
.setOnClickListener(user_pass_qr_submit_listener);
button_back.setOnClickListener(back_listener);
}
private View.OnClickListener user_pass_qr_submit_listener = new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
try {
id = edit_id_code.getText().toString();
client = new DefaultHttpClient();
HttpPost post1 = new HttpPost(
"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
List<NameValuePair> nvp = new ArrayList<NameValuePair>();
nvp.add(new BasicNameValuePair("uname", username));
nvp.add(new BasicNameValuePair("password", password));
nvp.add(new BasicNameValuePair("id", id));
post1.setEntity(new UrlEncodedFormEntity(nvp));
HttpResponse resp = client.execute(post1);
String responseText = inputStreamTOString(
resp.getEntity().getContent()).toString();
Log.i("response", responseText);
int num = Integer.parseInt(responseText);
if (num == 0) {
Toast.makeText(getApplicationContext(),
"Response" + responseText, 0).show();
} else if (num == 1) {
Intent survey = new Intent(ServiceActivity.this,
WebViewActivity.class);
startActivity(survey);
}
} catch (Exception e) {
Log.e("error", "ERROR" + e);
}
}
};
private View.OnClickListener back_listener = new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
};
private StringBuilder inputStreamTOString(InputStream is) {
String line = "";
StringBuilder total = new StringBuilder();
// read response until the end
try {
BufferedReader rd = new BufferedReader(new InputStreamReader(is,
"iso-8859-1"), 8);
while ((line = rd.readLine()) != null) {
total.append(line);
}
} catch (Exception e) {
// TODO: handle exception
}
return total;
}
}
在此之後,如果從服務器端的響應是「1」我打開一個新的活動中,我需要顯示的用戶在這裏WebView
內容是代碼
public class WebViewActivity extends Activity{
private WebView web;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.web_view);
web = (WebView) findViewById(R.id.webView);
web.getSettings().setJavaScriptEnabled(true);
web.loadUrl("xxxxxxxxxxxxxxxxxxxxxxxxxxxx");
}
}
但我無法加載相應的URL對應的用戶,我得到的PHP錯誤的webviewactivity,這是因爲我無法維護登錄用戶的會話。請建議我一些解決方案這個。
如何做到這一點?請詳細說明。 –
這不是一個答案,這應該是一個評論。 –
編輯答案。希望這會有所幫助。 –