Есть простое web-приложение, которое просто выводит мобильную версию сайт.
Нужно:
1. Сделать проверку идентификатора пользователя в кэше приложения. Если переменной ещё нет, то запросить логин / пароль, сделать удалённое соединение с базой mysql, если всё ок, то взять из базы идентификатор пользователя, сохранить в кэш идентификатор и открыть из приложения соответствующую страницу, вида https:// <site> /apkmode/ <userid> /.
Если идентификатор в кэше приложения уже есть, то сделать удалённое соединение с базой, проверить актуальность идентификатора (без требования логина и пароля) и если всё ок, открыть https:// <site> /apkmode/ <userid> /.
Если идентификатор в базе устарел, запросить логин / пароль.
2. Приложение в фоновом режиме должно регулярно обращаться к удалённой базе mysql и проверять наличие сообщений для пользователя с хранящимся идентификатором. Если найдено сообщение в базе, вывести на устройство это сообщение.
Исходник имеющегося приложения дам, доработки нужно будет сделать в нём.
Вот пример того, что должно делать приложение, написанный на php, его надо переписать под Android Studio:
<?php
$site = "site1";
$interip = "ServerIP";
$interbase = "Login";
$interuser = "Pass";
$interpass = "1";
$thisip = $_SERVER['REMOTE_ADDR'];
$thistime = time();
$cashmark = "";
$dbconn = 1;
if ($conn_id = mysql_connect($interip, $interuser, $interpass)) {
if (!$conn_id1 = mysql_select_db($interbase, $conn_id)) $dbconn = 0;
} else $dbconn = 0;
if ($dbconn == 1) {
$cashmark = file_get_contents("cash.txt");
if ($dbres = mysql_query("select ID from APK_USERS where CODE='".$cashmark."'"))
{
$row = mysql_fetch_row($dbres);
if ($row[0] > 0) $ok = 1; else $cashmark = "";
}
if ($cashmark == "") {
if (!isset($_POST['action'])) $action = ""; else $action = $_POST['action'];
if ($action == "auth") {
if (!isset($_POST['login'])) $login = ""; else $login = $_POST['login'];
if (!isset($_POST['pass'])) $pass = ""; else $pass = $_POST['pass'];
if ($dbres = mysql_query("select ID, CODE from APK_USERS where LOGIN='".$login."' and PASS='".$pass."'"))
{
$row = mysql_fetch_row($dbres);
if ($row[0] > 0) $cashmark = $row[1];
$ff = fopen("cash.txt", "w");
fwrite($ff, $cashmark);
fclose($ff);
chmod("cash.txt", 0777);
header("Location: apk.php");
exit();
}
} else {
echo '
<center><form method="post" action="apk.php" name="addform">
<input type="hidden" name="action" value="auth">
<p><input name="login" value="user1"></p>
<p><input name="pass" value="pass1"></p>
<p><input type="submit" value="Войти"></p>
</form></center>';
}
} else {
//--- Find Unical Id <> $curr + 1) {
$newid = $row[0] 1;
$stop = 1;
}
$curr = $row[0];
}
if ($newid == 0) $newid = $curr + 1;
//--- Find Unical Id >
mysql_query("insert into APK_INTER values (".$newid.", '".$site."', '".$thisip."', ".$thistime.", '".$cashmark."')");
echo '<iframe src="http://'.$site.'/apkmode/'.$cashmark.'/" style="width:100%; height:100%;"></iframe>';
}
} else echo "ERROR DATABASE";
?>
Опубликован 16.07.2020 в 20:01 Последнее изменение: 16.07.2020 в 20:04
Заказ находится в архиве