Javascript Pebble SDK/SimplyJS不使用\t字符

Javascript Pebble SDK/SimplyJS不使用\t字符,javascript,pebble-watch,pebble-sdk,Javascript,Pebble Watch,Pebble Sdk,在将数据推送到我的手表时(使用SimplyJS),我正在尝试让我的Pebble手表尊重转义序列字符\t,这是一段有趣的时光 以下代码段是我一直在使用的代码: simply.scrollable(true); simply.style('small'); simply.fullscreen(true); var aflLadderUrl = 'http://www.sportal.com.au/feeds/sss/afl_ladder.json'; var ladderContent = ''

在将数据推送到我的手表时(使用SimplyJS),我正在尝试让我的Pebble手表尊重转义序列字符
\t
,这是一段有趣的时光

以下代码段是我一直在使用的代码:

simply.scrollable(true);
simply.style('small');
simply.fullscreen(true);

var aflLadderUrl = 'http://www.sportal.com.au/feeds/sss/afl_ladder.json';

var ladderContent = '';

ajax({ url: aflLadderUrl, type: 'json'}, 
  function(data) {
   var i = 0;
   while (i < 18){
     ladderContent = ladderContent + data.ladder[i].friendly_name + '\t\t\t' + data.ladder[i].percentage + '\n';
        i++;  
   } 
   simply.text({
     title: 'AFL Ladder',
     body: ladderContent
   });
  }, 
  function() {
   simply.text({
    title: 'AFL Ladder',
    body: 'No internet connection'
   });
  }
);
简单。可滚动(true);
简单。风格(“小”);
简单。全屏(真);
var afladderURL=http://www.sportal.com.au/feeds/sss/afl_ladder.json';
var ladderContent=“”;
ajax({url:afladderURL,类型:'json'},
功能(数据){
var i=0;
而(i<18){
ladderContent=ladderContent+data.ladder[i]。友好的_名称+'\t\t\t'+data.ladder[i]。百分比+'\n';
i++;
} 
简单的.text({
标题:“AFL阶梯”,
正文:梯形内容
});
}, 
函数(){
简单的.text({
标题:“AFL阶梯”,
正文:“没有互联网连接”
});
}
);
我目前所观察到的是,
\n
正在受到尊重,我可以看到在我的手表上,每一行数据都显示在单独的一行上。但是,我的
\t
似乎被忽略了,并且没有在我的行中插入选项卡,而是显示零空格(即
'我的名字是'+'\t\t\t'+'戴夫'
显示为
我的名字是

我还尝试过使用Pebble SDK编译Hello World程序(从第11行打印的字符串中提取代码并添加两个
\t\t
),并且注意到SDK只接受
\n
字符,而不接受
\t
字符(就像我的SimplyJS应用程序那样)

我的问题是:有没有可能让Pebble(通过SDK或SimplyJS)显示选项卡的方式与您希望它们在打印到控制台时的工作方式相同?我知道\t字符可能不受支持,我可以使用空格代替
\t
,但这一个让我好奇

如果您需要更多信息,请告诉我


提前谢谢

因为
\t
是一个控件(不可打印)字符,所以它与任何字形都不对应,如果有,也不会得到一致的“显示”。例如,终端模拟器对它的解释将不同于读取TSV文件的电子表格软件。听起来像是Pebble固件将bytestring转换为显示器上像素的部分忽略了
\t
,尽管我在SDK文档中找不到这一点

如果使用固定宽度字体,可以使用空格实现自己的选项卡,如下所示:

var data = {ladder: [
  {friendly_name: "Cool Team", percentage: 80.0},
  {friendly_name: "Really Cool Team", percentage: 80.0},
  {friendly_name: "The Coolest Team of All", percentage: 80.0}
]}

var len = function(obj) {return obj.friendly_name.length}
var longer = function(a, b) {return len(a) > len(b) ? a : b}
var longestName = len(data.ladder.reduce(longer))

var tab = function(obj) { return new Array(longestName - len(obj) + 2).join(" ") }
var print = function(obj) { return obj.friendly_name + tab(obj) + obj.percentage }

var ladderContent = data.ladder.map(print).join("\n")
// Cool Team               80
// Really Cool Team        80
// The Coolest Team of All 80

谢谢,伙计,这是我收到的最好的解释。有趣的是,有些字体似乎也不显示换行符,但您的答案似乎非常可靠。