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

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

Зарегистрироваться!
  • Если Вы желаете помогать развитию проекта, готовы заполнять раздел(-ы) и подсказывать другим пользователям на портале, есть возможность попасть в команду редакторов. Для этого следует обратиться в техническую поддержку
Пользователь
Регистрация
11 Май 2025
Сообщения
18
Авторизация через 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 год ( моя )
 
Сверху