Как получить версию приложения Pebble на часах?

Я хочу предоставить версию моего приложения Pebble на заставке. Но как я могу получить к нему доступ?

Есть ли способ получить доступ к информации из appinfo.json на часах или в JS? Мне нужна хотя бы строка версии.


person r-dent    schedule 21.02.2014    source источник
comment
сначала загрузите этот json-файл в DOM с помощью ajax, а затем прочитайте его в js, т.е. проанализируйте его, извлеките нужное свойство и покажите значение там, где вам нужно.   -  person Siddharth Pandey    schedule 21.02.2014


Ответы (2)


Самый простой способ добавить версию вашего приложения в код C — изменить wscript, чтобы сгенерировать файл заголовка, содержащий его, как часть процесса сборки.

Пользователь pedrolane на форумах Pebble предоставил свой wscript в качестве примера, который вы можете найти здесь: https://code.google.com/p/pebble-for-gopro/source/browse/wscript?spec=svn8634d98109cb03c30c4dab52e665c4ac548cb20a&r=8634d98109cb03c30c4dab52e665c4ac548cb20a

Вот содержимое файла. Функция generate_appinfo читает appinfo.json, получает versionLabel и записывает ее в generated/appinfo.h.

import json

top = '.'
out = 'build'

def options(ctx):
    ctx.load('pebble_sdk')

def configure(ctx):
    ctx.load('pebble_sdk')

def build(ctx):
    ctx.load('pebble_sdk')

    def generate_appinfo(task):
        src = task.inputs[0].abspath()
        tgt = task.outputs[0].abspath()

        json_data=open(src)
        data = json.load(json_data)

        f = open(tgt,'w')
        f.write('#ifndef appinfo_h\n')
        f.write('#define appinfo_h\n')
        f.write('#define VERSION_LABEL "' + data["versionLabel"] + '"\n') 
        f.write('#endif\n')
        f.close()

    ctx(
        rule   = generate_appinfo,
        source = 'appinfo.json',
        target = 'generated/appinfo.h',
    )

    ctx.pbl_program(source=ctx.path.ant_glob(['src/**/*.c','generated/**/*.c']),
                includes='generated',
                target='pebble-app.elf')

    ctx.pbl_bundle(elf='pebble-app.elf',
                   js=ctx.path.ant_glob('src/js/**/*.js'))

Чтобы использовать это значение, включите appinfo.h и используйте VERSION_LABEL.

person matthewtole    schedule 21.02.2014

Еще одно хакерское решение без генерации кода, добавьте следующие строки в ваш main.c :

#include "pebble_app_info.h"
extern const PebbleAppInfo __pbl_app_info;

Затем вы можете получить версию своего приложения следующим образом:

__pbl_app_info.app_version.major
__pbl_app_info.app_version.minor
person Gregoire    schedule 22.03.2014