Я хочу записать поток данных, которые находятся в файле JavaScript, в текстовое поле HTML

#javascript #html #tizen

#javascript #HTML #tizen

Вопрос:

как вы можете видеть из моего предыдущего вопроса, я очень новичок в мире программирования. Я попытался разработать приложение для устройства Tizen (Samsung Gear S), которое считывает частоту сердечных сокращений и показывает ее. Я использовал шаблоны и попытался записать данные в файловую систему, но столкнулся с некоторыми проблемами и начал разрабатывать простое приложение, которое будет отображать частоту сердечных сокращений на экране. Я использовал некоторые фрагменты кода с сайта разработчиков Tizen, и я смог консольно регистрировать данные. Теперь я хочу передать эти данные в «текстовое поле, подобное текстовому полю» (извините за эти слова :)), которое в конечном итоге будет отображаться на экране приложения при запуске. Сначала я попробовал использовать супер простое приложение, которое показывало строку hello world в текстовом поле, и это сработало. Теперь я пытаюсь настроить код для своих целей. Я хочу, чтобы поток данных отображался в поле непрерывно, а не только один раз, и, возможно, мне придется использовать другой тип кода. Ниже приведен мой код, извините за глупый вопрос, но я был назначен на вещь, совершенно далекую от знаний. Заранее спасибо за помощь! Tizen sdk имеет язык Javascript для основных файлов и язык HTML и CSS для графического интерфейса веб-приложения.

HTML:

 <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0,       maximum-scale=1.0">
<meta name="description" content="A single-page template generated by Tizen Wearable Web IDE"/>

<title>Tizen Wearable Web IDE - Tizen Wearable - jQuery</title>


<link rel="stylesheet" href="css/style.css" />
</head>
<body>
<div class=contents>
<div style='margin:auto;'>
    <span class=content_text id=textbox>Basic</span>
    <input type="text" id="mytext">
</div>
</div>
<script type="text/javascript" src="js/jquery-1.9.1.js"></script>
<script type="text/javascript" src="js/main.js"></script>
</body>
</html>
  

JAVASCRIPT:

 var counter = 0;

function onchangedCB(hrmInfo)
{
console.log("Heart Rate: "   hrmInfo.heartRate);
console.log("Peak-to-peak interval: "   hrmInfo.rRInterval   "      milliseconds");

counter  ;
if (counter > 10)
{
  /* Stop the sensor after detecting a few changes */
  tizen.humanactivitymonitor.stop("HRM");
}
}

tizen.humanactivitymonitor.start("HRM", onchangedCB);

function onsuccessCB(hrmInfo)
{
console.log("Heart rate: "   hrmInfo.heartRate);
}
function onerrorCB(error)
{
console.log("Error occurred: "   error.message);
}
tizen.humanactivitymonitor.getHumanActivityData("HRM", onsuccessCB,   onerrorCB);

var data = hrmInfo.heartRate;
document.getElementById("mytext").value = data;

document.addEventListener('tizenhwkey', function(e) {
if(e.keyName === "back") {
    try {
        tizen.humanactivitymonitor.stop("HRM");
        tizen.application.getCurrentApplication().exit();
    } catch (error) {
        console.error("getCurrentApplication(): "   error.message);
    }
}
});
  

Комментарии:

1. в журнале консоли я получаю эти строки, и, конечно же, появляется ошибка: js/main.js (19) :Ошибка ссылки: не удается найти переменную: hrmInfo js/main.js (10) : Частота сердечных сокращений: 100

2. Вы получаете сообщение об ошибке? Код выглядит так, как будто вы уже пытались записать его в текстовое поле. С какими проблемами вы сталкиваетесь?

3. Привет! Да, ошибка — это та, которую я написал в комментарии, и в ней говорится, что он не может найти переменную hrmInfo. И думаю, это потому, что я пишу неправильный тип кода, поскольку я полный новичок. Я вижу текстовое поле, но оно, конечно, пустое. И, возможно, это также не лучший способ написать в приложении то, что я хочу! Я действительно продвигаюсь вперед только с попытками, только с супер базовыми знаниями.

Ответ №1:

Я думаю, проблема в том, что document.getElementById("mytext").value = data; и предыдущая строка не в нужном месте. Я рекомендую добавить эти строки в onchangedCB , над или под консольными строками. Ожидается, что это место hrmInfo будет определено, поскольку оно передается в качестве параметра onchangedCB .

Комментарии:

1. хорошо, спасибо за вашу точку зрения. Но я должен также написать строку var data = hrmInfo.HeartRate; в функции onchangedCB? Спасибо за вашу помощь!

2. Хорошо, я написал что-то вроде этого: function onchangedCB(hrmInfo) { console.log("Heart Rate: " hrmInfo.heartRate); console.log("Peak-to-peak interval: " hrmInfo.rRInterval " milliseconds"); var data = hrmInfo.heartRate; document.getElementById("mytext").value = data; } и я вижу скорость! Большое вам спасибо! Я также попытался изменить скорость онлайн (я использую эмулятор шестеренок), и он обновляет значение в режиме реального времени, я думаю! Как вы думаете, есть ли лучший способ отобразить эти данные на экране приложения?

3. Я имею в виду что-то отличное от текстового поля, поскольку, на самом деле, я не хочу редактировать свои данные, я только хочу их видеть.