You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将三星Galaxy Watch心率数据通过Tizen发送到Node.js服务器

Tizen手表心率数据上传服务器问题解决方案

1 优先检查config.xml权限配置

90%的无报错请求失败问题都是权限未正确配置导致,Tizen默认拦截未声明权限的网络请求,不会抛出显性错误:

  • 必须添加互联网访问权限:
    <tizen:privilege name="http://tizen.org/privilege/internet"/>
    
  • 添加跨域访问配置:
    <access origin="*" subdomains="true"/>
    
  • 如果你用的是HTTP明文地址(非HTTPS),Tizen 5.5及以上版本默认拦截所有HTTP请求,需要在<widget>根标签添加属性:
    <widget id="xxx" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets" allow-non-https-traffic="true">
    

2 校验XHR写法与错误监听

添加完整的状态、错误监听逻辑,才能定位具体失败原因,参考写法:

const xhr = new XMLHttpRequest();
// 注意:本地开发不要填localhost/127.0.0.1,要填运行Node.js服务的设备的局域网IP,比如http://192.168.3.10:3000/upload
const serverUrl = "你的服务器接口地址";
xhr.open("POST", serverUrl, true);
xhr.setRequestHeader("Content-Type", "application/json");

// 监听请求状态
xhr.onreadystatechange = () => {
  if (xhr.readyState === 4) {
    console.log("请求返回状态码:", xhr.status, "返回内容:", xhr.responseText);
  }
};
// 监听请求错误
xhr.onerror = (e) => {
  console.error("请求触发错误:", e);
};

// 组装心率数据
const postData = JSON.stringify({
  heartRate: 你的心率读取值,
  timestamp: Date.now()
});
xhr.send(postData);

3 Node.js服务端配置校验

  • 确保服务监听地址是0.0.0.0,不是127.0.0.1,否则局域网其他设备无法访问
  • 开启CORS跨域允许,配置JSON请求体解析,参考express写法:
const express = require("express");
const cors = require("cors");
const app = express();

// 允许跨域请求
app.use(cors());
// 解析JSON格式的请求体
app.use(express.json());

// 心率数据接收接口
app.post("/upload", (req, res) => {
  console.log("收到心率数据:", req.body);
  res.json({code: 0, msg: "接收成功"});
});

// 监听0.0.0.0,保证局域网可访问
app.listen(3000, "0.0.0.0", () => {
  console.log("服务启动成功,端口3000");
});

4 网络连通性校验

  • 确认手表和运行Node.js的设备在同一个WIFI局域网下
  • 可以先在手表自带浏览器输入你的服务器地址,确认可以正常访问,排除网络层不通的问题
  • 如果上述方案都无效,可以替换为Tizen原生的tizen.web.request()接口发起请求,兼容性优于XHR

内容的提问来源于stack exchange,提问作者Vittoria Cipollone

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 03:45:03