我已经按照pebble表面的教程进行了操作,但改变了一些事情,但在日志中得到了错误:
忽略无效密钥:KEY_TEMPERATURE 忽略无效密钥:KEY_CONDITIONS
导致没有天气显示我认为它可能是js代码但我在教程main.c上使用它并且它工作正常。
答案 0 :(得分:1)
您未在appKeys
中指定任何appinfo.json
。
Pebble消息使用整数键入,而不是字符串。但是有适当的设施,你可以use meaningful strings when coding:
在PebbleKit JS消息中使用命名键
PebbleKit JavaScript提供了一种使用命名键而不是整数键的机制。这样可以提高JavaScript代码的可读性,并允许您在一个位置分组AppMessage密钥的定义。
在“设置”屏幕的“PebbleKit JS消息密钥”部分的CloudPebble中声明密钥。
在本机SDK中,命名密钥是通过
appKeys
文件中的appinfo.json
对象配置的。此对象将整数值与字符串相关联。这些值用于转换传出和传入消息的密钥。"appKeys": { "firstKey": 0, "secondKey": 1 }
请注意,此处定义的键应与C代码中的键匹配,可能是通过C源代码中的#define
语句或头文件。
对于传入消息的每个键,PebbleKit JS会在
appKeys
对象中查找与该键具有相同整数值的元素。如果它可以找到一个,它将在JavaScript对象中用此字符串替换此键。如果找不到,则会创建一个包含密钥整数值的新字符串。对于传出消息的每个键,PebbleKit JS在
appKeys
对象中查找等于键的元素。如果找到一个,则使用与此元素关联的整数值作为键的整数表示。如果找不到,则尝试将密钥转换为整数。如果失败,则会引发错误。例如,给定上面的
appKeys
配置,以下语句是等效的:Pebble.sendAppMessage({ '0': 'A value' }); Pebble.sendAppMessage({ 'firstKey': 'A value' });
确保更新您的代码,以便您在C中指定这些值(您似乎通过#define
)以及 JavaScript通过{{1}指定了这些值文件:
appinfo.json