worldlight
@worldlight
Просто программист

Как вывести строку из Rust в HTML элемент с помощью JS?

Делаю приложение на Rust Tauri при первом запуске нужно чтобы выводились сообщение на подобии "Привет, {имя учетки пк юзера}" имя я могу получить но вывести это в HTML элемент не могу, облазил всю документацию и стек оферфлоу вдоль и поперек ничего не нашел, можете дать код и объяснить его.

P.S: я чайник в rust и особенно в Tauri. Я пробовал много способов и ошибок не было но и результата таже не было
  • Вопрос задан
  • 162 просмотра
Пригласить эксперта
Ответы на вопрос 2
Zagir-vip
@Zagir-vip
Web dev, Game dev, app dev, Разработчик на Python!
Для того чтобы вывести строку из Rust в HTML элемент с помощью JS, можно использовать JavaScript API, предоставляемый Tauri. Вот пример кода:

Rust:

#[tauri::command]
fn get_username() -> String {
    let username = whoami::username();
    format!("Привет, {}!", username)
}


JavaScript:

async function getUsername() {
  const response = await window.tauri.promisified({
    cmd: 'get_username'
  });
  const username = response.result;
  const element = document.getElementById('greeting');
  element.innerHTML = username;
}


В этом примере мы создаем функцию getUsername, которая вызывает Rust функцию get_username с помощью Tauri API и получает строку с приветствием. Затем мы находим элемент HTML с идентификатором greeting и устанавливаем его содержимое равным полученной строке.

Для того чтобы вызвать функцию getUsername, можно использовать обработчик события DOMContentLoaded:

document.addEventListener('DOMContentLoaded', getUsername);


Этот код вызовет функцию getUsername при загрузке страницы.

Обратите внимание, что для использования Tauri API необходимо добавить соответствующие зависимости в Cargo.toml и настроить конфигурацию проекта. Более подробную информацию можно найти в документации Tauri.
Ответ написан
@domanskiy
Я новичок в Tauri, но разве не требуется зарегистрировать в Rust в tauri::Builder в invoke_handler функцию раста, что бы затем её из js дёргать?
Например через window.__TAURI__.invoke("имя_функции_раста")
или
await invoke("имя_функции_раста", {
/////
})
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы