Добро пожаловать!

Зарегистрировавшись у нас, вы сможете обсуждать, делиться и отправлять личные сообщения другим участникам нашего сообщества.

Зарегистрироваться!
Пользователь
Регистрация
11 Май 2025
Сообщения
17
Авторизация через API
JavaScript:
public class AuthActivity extends AppCompatActivity {
    private EditText etLogin, etPassword;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_auth);

        etLogin = findViewById(R.id.etLogin);
        etPassword = findViewById(R.id.etPassword);
        Button btnLogin = findViewById(R.id.btnLogin);

        btnLogin.setOnClickListener(v -> {
            String login = etLogin.getText().toString();
            String password = etPassword.getText().toString();
         
            // Запрос к API CRMP
            AuthTask authTask = new AuthTask();
            authTask.execute(login, password);
        });
    }

    private class AuthTask extends AsyncTask<String, Void, Boolean> {
        @Override
        protected Boolean doInBackground(String... params) {
            try {
                // Пример запроса (замените URL на ваш API)
                URL url = new URL("[URL]https://api.crmp-server.ru/auth[/URL]");
                HttpURLConnection conn = (HttpURLConnection) url.openConnection();
                conn.setRequestMethod("POST");
                conn.setDoOutput(true);
             
                String data = "login=" + params[0] + "&password=" + params[1];
                OutputStream os = conn.getOutputStream();
                os.write(data.getBytes());
                os.flush();
             
                int code = conn.getResponseCode();
                return (code == 200); // Успешная авторизация
            } catch (Exception e) {
                e.printStackTrace();
                return false;
            }
        }

        @Override
        protected void onPostExecute(Boolean result) {
            if (result) {
                startActivity(new Intent(AuthActivity.this, MainActivity.class));
            } else {
                Toast.makeText(AuthActivity.this, "Ошибка авторизации!", Toast.LENGTH_SHORT).show();
            }
        }
    }
}
Список серверов -
public class Server {
    private String name;
    private String ip;
    private int playersOnline;

    // Геттеры и сеттеры
}

public class ServerAdapter extends RecyclerView.Adapter<ServerAdapter.ViewHolder> {
    private List<Server> servers;

    public ServerAdapter(List<Server> servers) {
        this.servers = servers;
    }

    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_server, parent, false);
        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
        Server server = servers.get(position);
        holder.tvName.setText(server.getName());
        holder.tvPlayers.setText("Онлайн: " + server.getPlayersOnline());
     
        holder.itemView.setOnClickListener(v -> {
            // Запуск клиента с выбранным IP
            Intent intent = new Intent(v.getContext(), GameActivity.class);
            intent.putExtra("server_ip", server.getIp());
            v.getContext().startActivity(intent);
        });
    }

    static class ViewHolder extends RecyclerView.ViewHolder {
        TextView tvName, tvPlayers;

        ViewHolder(View itemView) {
            super(itemView);
            tvName = itemView.findViewById(R.id.tvServerName);
            tvPlayers = itemView.findViewById(R.id.tvServerPlayers);
        }
    }
}
Запуск клиента -
<!-- activity_game.xml -->
<WebView
    android:id="@+id/webView"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
public class GameActivity extends AppCompatActivity {
    private WebView webView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_game);

        String serverIp = getIntent().getStringExtra("server_ip");
        webView = findViewById(R.id.webView);
        webView.getSettings().setJavaScriptEnabled(true);
        webView.loadUrl("[URL]https://mobile.crmp-server.ru?ip=[/URL]" + serverIp); // Ваш вев-клиент
    }
}
Старая работа 2022 год ( моя )
 
Профессионал
Заблокированный
Регистрация
20 Мар 2025
Сообщения
446
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки. Мы не несем ответственности за действия пользователя вне форума.
новый gegam! ПОНЕЛ
 
Сверху