Javascript Pebble JS、GitHub和图像资源

Javascript Pebble JS、GitHub和图像资源,javascript,pebble-watch,pebble-sdk,cloudpebble,pebble-js,Javascript,Pebble Watch,Pebble Sdk,Cloudpebble,Pebble Js,我正在处理一个pebble.js项目,该项目正在从GitHub repo加载。我基本上是在本地编写代码,推到GitHub,然后拉到CloudPebble中进行构建,因为我的计算机不适合运行SDK。CloudPebble正确地查看了我的图像资源,但我不知道如何引用它。最初,它无法找到图像,直到我将子路径移动到resources文件夹中。这允许正确导入,但每当我引用我的图像时,我都会在应用程序日志中看到: JavaScript Error: send@[native code] at loa

我正在处理一个
pebble.js
项目,该项目正在从GitHub repo加载。我基本上是在本地编写代码,推到GitHub,然后拉到CloudPebble中进行构建,因为我的计算机不适合运行SDK。CloudPebble正确地查看了我的图像资源,但我不知道如何引用它。最初,它无法找到图像,直到我将子路径移动到
resources
文件夹中。这允许正确导入,但每当我引用我的图像时,我都会在应用程序日志中看到:

JavaScript Error:
send@[native code]
    at load (ui/windowstack.js:2654:22)
    at load (lib/image.js:165:11)
    at load (ui/imageservice.js:85:16)
    at resolve (ui/imageservice.js:109:60)
    at ImageType (ui/simply-pebble.js:41:32)
    at lib/struct.js:161:32
    at menuItem (ui/simply-pebble.js:814:10)
    at _resolveItem (ui/menu.js:161:30)
    at _preloadItems (ui/menu.js:170:22)
    at _resolveSection (ui/menu.js:151:25)
    at section (ui/menu.js:239:23)
    at updateActivityMenu (app.js:44:18)
    at app.js:167:21
    at onreadystatechange (lib/ajax.js:109:17)
以下是我的项目结构示例:

/project/resources/images/some_image.png
/project/src/app.js
/project/appinfo.json
这是appinfo.js的相关位

    "media": [
        {
            "file": "images/some_image.png",
            "name": "MY_IMAGE",
            "type": "png"
        }
    ]
    var item = {
        title: data.Response.data.activity.activityName,
        subtitle: data.Response.data.activity.activityDescription,
        icon: 'MY_IMAGE' 
    };
最后是
app.js

    "media": [
        {
            "file": "images/some_image.png",
            "name": "MY_IMAGE",
            "type": "png"
        }
    ]
    var item = {
        title: data.Response.data.activity.activityName,
        subtitle: data.Response.data.activity.activityDescription,
        icon: 'MY_IMAGE' 
    };
我还尝试直接引用
图标
属性的图像路径,但图像从未显示,我得到了相同的
JavaScript错误
。我可以看到在生成日志中正确添加的图像:

[ 6/29] some_image.png.pbi: resources/images/some_image.png ../../app/sdk2/Pebble/tools/bitmapgen.py -> build/resources/images/some_image.png.pbi

在这一点上我不知所措-任何帮助都将不胜感激。

Pebble SDK 2或3?在3之前,图像资源必须从PNG预转换为PBI。Pebble’s提供了原始(又名Aplite)和时间(又名玄武岩)Pebble支持的格式的更多详细信息。

尝试使用图像路径而不是其资源ID:

var item = {
    title: data.Response.data.activity.activityName,
    subtitle: data.Response.data.activity.activityDescription,
    icon: 'images/some_image.png' 
};
pebble.js
文档:


SDK 2-CloudPebble中的编译器似乎已经在将映像转换为PBI了。如果我在
appinfo.json
中设置
menuIcon:true
,我可以确认该图像将作为菜单中应用程序的图标,当我想在我的应用程序自己的菜单中将其用作图标时,它似乎会出问题。在SDK2下,PNG图像会自动转换为PBI。您是否尝试过
图标:“图像/some_image.PNG”
?这也是受支持的。@sarfata是的,我两种方法都试过。愚蠢的问题,但我必须问:您是否尝试过“resources/images/some_image.png”或“/resources/images/some_image.png”或“./resources/images/some_image.png”或使用.pbi扩展名?我对pebble一无所知,只是想让你的结论不透风。@phatskat你能在某个地方分享一个暴露这个问题的示例zip吗?使用C SDK时,资源名称需要以
resource\u ID\u
作为前缀。你试过
RESOURCE\u ID\u MY\u IMAGE
而不是
MY\u IMAGE
吗?谢谢-今晚我会再拍一次,尽管我很确定我以前试过。