【问题标题】:Add buttons inside javascript code在 javascript 代码中添加按钮
【发布时间】:2015-06-09 15:57:27
【问题描述】:

我想在我拥有的 javascript 代码中添加一个按钮,该按钮使用 Tizen sdk 存储来自 Gear 2 的心率。在我的代码中,主 div 插入到 javascript 代码中。我正在使用以下代码:

//HTML CODE:
<div id="chartContainer" class="chart"></div>

//JAVASCRIPT CODE:
var chart = new CanvasJS.Chart("chartContainer",{
    title :{
        fontColor: "#ccc",
        text: "Heart Rate"
    },
    backgroundColor: "#222",
    data: [{
        color: "#CD5C5C",
        type: "line",
        dataPoints: dps 
    }]
});
var lastSecond = -1;
var updateChart = function (heartrate) {
    time = new Date().getTime() - initial;
    console.log("[" + time + ", " + heartrate + "]");
    temp = heartrate;
    console.log("tempVar"+ temp);

     tizen.filesystem.resolve(
             'documents',
             function(dir){
               documentsDir = dir; dir.listFiles(onsuccess,onerror);
             }, function(e) {
               console.log("Error" + e.message);
             }, "a"
         );

    dps.push({
        x: time / 1000.0,
        y: heartrate
    });
    if (dps.length > dataLength)
    {
        dps.shift();                
    }
    var second = Math.round(time / 1000.0);
    console.log(history.length);
    if(lastSecond != second) {
        // TODO use avg heart rate instead of smapshot.
        history.push({
            x: second,
            y: heartrate
        });
        if(history.length > historyDataLength) {
            history.shift();
        }
        lastSecond = second;
    }

    if(dps.length >= dataLength) {
        chart.render();
    }
    var hrchart = "<center>" + heartrate + "bps</center><table width='100%' cellpadding=4px>";
    for(var i = history.length - historyDataLength; i >= 0 && i < history.length; i++) {
        hrchart += "<tr><td align='right' width='50%'>" + history[i].x + "s</td><td width='50%'>" + history[i].y + "bps</td></tr>";
    }
    hrchart += "</table>";
    $('#textbox').html(hrchart);
};

updateChart(0);
updateChart(250);
for(var i = 0; i < dataLength; i++) {
    updateChart(0);
}

我想创建一个两个按钮,一个用于在单击时关闭应用程序,另一个用于在单击时存储数据。如何在 javascript 代码中添加这两个按钮?其次,有人熟悉“tizenhwkey”键吗?究竟是哪把钥匙?第三,我使用以下命令window.webapis.motion.start("HRM", onchangedCB) 打开心率传感器。如何关闭心率传感器? onchangeCB 函数如下:

function onchangedCB(hrmInfo) 
{
   if(hrmInfo.heartRate > 0) {


            // add eventListener for tizenhwkey
            document.addEventListener('tizenhwkey', function(e) {
                if(e.keyName == "back")

                    tizen.application.getCurrentApplication().exit();
            });

       updateChart(hrmInfo.heartRate);
   } else {
       $('#textbox').html("No heart rate detected.");
   }
}

这假设在按下返回按钮时关闭应用程序。然而,齿轮 2 只有一个按钮。这个按钮是 tiwzenhwkey 吗?对于人力资源管理,我使用以下code。为了写入我正在使用的文件:

function onsuccess(files) {
       var testFile = null;
       try{
          testFile = documentsDir.createFile("test.txt");
       if (testFile !== null) {
         testFile.openStream(
             "a",
             function(fs){
               fs.write(temp+"\n\n\n");
               fs.close();
             }, function(e){
               console.log("Error " + e.message);
             }, "UTF-8"
         );
       }
       }
       catch (e) { // file already exist -> append content
           testFile = documentsDir.resolve('test.txt');
            if(testFile !== null)
            {
                testFile.openStream(
                     "a",
                     function(fs){
                       fs.write(temp+"\n\n\n");
                       fs.close();
                     }, function(e){
                       console.log("Error " + e.message);
                     }, "UTF-8"
                 );
            }
        }
     }
     function onerror(error) {
       console.log("The error " + error.message + " occurred when listing the files in the selected folder");
     }

temp = heartrate;   
    tizen.filesystem.resolve(
            'documents',
             function(dir){
             documentsDir = dir; 
             dir.listFiles(onsuccess,onerror);
             }, function(e) {
             console.log("Error" + e.message);
             }, "a"
    );

【问题讨论】:

    标签: javascript tizen


    【解决方案1】:

    1.在 JS 代码中创建按钮

    var b1 = document.createElement("BUTTON"); // Create Button
    var b2 = document.createElement("BUTTON");
    
    // Assign text to your button
    b1.textContent = "Start";
    b2.textContent = "Exit";
    
    // Register click handlers to call respective functions
    b1.onclick = function() {/*Code here*/};
    b2.onclick = function() {/*Code here*/};
    
    // Append them in your DOM i.e to show it on your page.
    // Suppose to append it to an existing element in your page with id as "appp".
    var attachTo = document.getElementById("appp");
    attachTo.appendChild(b1);
    attachTo.appendChild(b2);
    

    2。 TIZENHWKEY

    在 Gear 上,“tizenhwkey”表示“向下滑动”手势和“向上滑动”手势。

    向下滑动 用作 返回 键,类似于在手机上的工作方式。 向上滑动充当类似于手机上的菜单按钮

    您可以使用下面的代码来处理我上面提到的两种手势。

    document.addEventListener('tizenhwkey', function(e)  {
                if(e.keyName == "menu") {
                }
    
                if(e.keyName == "back") {
                    // you need to write exit statement
                    tizen.application.getCurrentApplication().exit();
                }
        }
    
    1. 关于 HRM 停止 - 使用它来停止监控 HRM。

      webapis.motion.stop("HRM");

    2. 新行问题 - 试试它的工作原理。

      fs.write(temp + "\n\n\n");

    【讨论】:

    • 是的,我有将 hrm 存储在文件中的代码,当我将 gear 与 pc 连接时,我得到了一个包含 hrm 值的文件。 Avout tizenhwkey 似乎在我上下滑动时它根本没有关闭应用程序。此外,我想找到一种关闭传感器设备的方法,因为我打开我的应用程序传感器绿灯,因为 hrm 不会停止功能。我正在使用 write 函数将 hrm 写入文件的最后一件事。但是,它似乎无法识别“\n”。关于那件事有什么线索吗?
    • 你提到过tizen.application.getCurrentApplication().exit();声明里面的键处理。检查编辑的代码。最初我只是写了代码结构。我以为你会写出你想做的逻辑。另外,您还没有消除我对您的第三个问题的疑问。
    • 当您说集成时,您的意思是与 Galaxy 设备一起使用?
    • 集成 - 它由在基于 Android 的三星移动设备上运行的主机端应用程序和可穿戴端小部件组成。独立 - 它仅包含在基于 Tizen 的 Samsung Gear 设备上运行的可穿戴端小部件。
    • 我运行应用程序并将 gear 与 pc 连接只是为了获取带有 hrm 的文件,因此是独立的。
    【解决方案2】:

    我还是个初学者,但我知道如何打开和关闭窗口的基本知识。也许这可以帮助你。

     <button onclick="openWin()">Open "myWindow"</button>
     <button onclick="closeWin()">Close "myWindow"</button>
    
    <script>
    var myWindow;
    function openWin() { 
    myWindow = window.open("", "myWindow", "width=200, height=100"); 
    myWindow.document.write("<p>This is 'myWindow'</p>");
    }
    
    function closeWin(){ 
    myWindow.close();
    }
    

    【讨论】:

    • 如您所见,chartContainer 的整个代码都在 javascript 中。因此在javascript代码中编写按钮非常方便。
    猜你喜欢
    • 1970-01-01
    • 2020-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-17
    • 2015-07-24
    • 1970-01-01
    相关资源
    最近更新 更多