Я создаю приложение для Android, используя webview и php. я написал PHP, чтобы получить значение пользователя, вошедшего в систему (0, если никто не вошел в систему), если пользователи вошли в систему (через приложение конечно), мне нужно изменить значки меню параметров, и если ни один пользователь не вошел в систему значки будут разные. Однако php-скрипт не получает правильное значение в Android, но работает нормально, когда я открываю его с компьютера и проверяю, входя в систему и выходя с нее
вот код для меню опций, которое вызывает функцию isloggedin ()
register=omenu.findItem(R.id.registeraccount);
login=omenu.findItem(R.id.loginitem);
String checklogin= isloggedin();
Toast.makeText(this, checklogin, Toast.LENGTH_SHORT).show();
if(!checklogin.equalsIgnoreCase("0"))
{
register.setIcon(R.drawable.account);
register.setTitle("Account");
login.setIcon(R.drawable.logout);
login.setTitle("Logout");
}
else{
register.setIcon(R.drawable.register);
register.setTitle("Register");
login.setIcon(R.drawable.login);
login.setTitle("Login");
}
функция isloggedin ()
public String isloggedin()
{
try {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost("url/checklogin.php");
ResponseHandler<String> responseHandler = new BasicResponseHandler();
final String response = httpclient.execute(httpPost, responseHandler);
return response;
}catch (Exception e)
{
return "";
}
}
и затем я также вызвал invalidateoptionsmenu () в методе onpagefinished () webviewclient, чтобы можно было воссоздать optionsmenu и обновить иконки при необходимости
loadsite.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// TODO Auto-generated method stub
view.loadUrl(url);
progressBar.setVisibility(View.VISIBLE);
return true;
}
@Override
public void onPageFinished(WebView view, String url) {
// TODO Auto-generated method stub
super.onPageFinished(view, url);
progressBar.setVisibility(View.GONE);
invalidateOptionsMenu();
}
});
;
loadsite.loadUrl("url");
скрипт php, выполняемый с помощью функции isloggedin (), всегда возвращает 0 независимо от того, вошел пользователь в систему или нет. однако, когда я вхожу с ноутбука, скрипт возвращает 1 или любое другое значение, отличное от 0, чтобы указать, какой пользователь вошел в систему
скрипт php
global $current_user;
$current_user = wp_get_current_user();
$id=$current_user->ID
echo $id