卵石通讯方式

Vas*_*asu 2 javascript android pebble-watch pebble-sdk cloudpebble

我现在一直在用卵石试验一两天,我已经达到了一点停滞状态.也就是说,我似乎无法弄清楚某些事情是如何相关的.我想要做的是从Android上的应用程序获取数据以发送到卵石,然后为鹅卵石做一些有效的数据.

我已经意识到你在一个Android应用程序中使用PebbleKit API,以便使用诸如之类的东西与卵石进行通信sendDataToPebble().在那之后,我不太确定该怎么做.

使用cloudpebble.net,我使用pebble SDK在C中创建了一个应用程序来确认数据(使用他们网站上建议的处理程序).但是,我最近发现在整个混音中也可能有javascript,我只是不知道如何与js交互.

是否有可能拥有所有ack/nack数据,并且后续处理/显示数据完全通过javascript完成,完全避免C,或者我是否需要在c中接收数据,然后将其发送到javascript一些如何为它使用(我目前不知道该怎么做).

相信appmessage当JS应用程序收到数据时会触发某种事件(我认为),但是,我认为这只是来自C应用程序?

因此,大多数情况下,我的困惑在于JS如何融入整个组合.如果有人能为我清楚,我会真诚地感激它.

编辑:我应该补充一点,我正在尝试使用cloudpebble.net中的pebble.js创建一个应用程序.

谢谢!

Chr*_*ris 7

注意:下面的一些链接转到Pebble API文档,在撰写本文时,只有在您使用Pebble帐户登录开发人员站点时才能访问.

Pebble开发入门可能有点压倒性.有许多活动部件,其中一些是你需要的,有些是你不需要的.以下是主要组件的快速概述:

  1. 用C编写的应用程序.您肯定需要编写其中一个.(好吧,几乎肯定.请参阅下面关于SimplyJS的说明.)

    这是在实际手表上运行的.在这里你可能会创建窗口,菜单,也许可以用图形做一些工作.您可能会设置点击处理程序来处理按钮按下.

    手表本身不能做很多有趣的事情.例如,它无法发出任何网络请求,因此无法与Web进行通信.它本身不能做地理定位.你可以建立一个完全独立的表盘或计时器或简单的游戏.

  2. 除非您的应用程序完全在手表上运行,否则您还需要以下其中一项:

    • 一个用Java编写的Android应用程序,使用PebbleKit for Android.
    • 使用PebbleKit for iOS 编写的用Objective C编写的iOS应用程序.

      我对使用PebbleKit for Android或PebbleKit for iOS没有任何经验,但他们都有官方API文档:

      这些都不能从CloudPebble.net中使用.

    • 使用PebbleKitJS编写的JavaScript应用程序,适用于Android和iOS.

      因为此选项允许开发人员同时定位两个移动平台,所以这是我最喜欢的选项.我的感觉是许多其他开发者都同意.除非您需要访问PebbleKitJS提供的内容之外的东西,否则我建议您使用它.

      这里的JavaScript代码是从手机上的官方Pebble应用程序中执行的.从本质上讲,Pebble应用程序为每个手表应用程序都有一个沙盒JavaScript环境.如果你走这条路,你就不会建立一个配套的Android或iOS应用程序.官方Pebble应用程序有效地成为您的伴侣应用程序.

      (请注意,在iOS上,JavaScript代码实际上必须捆绑在官方Pebble应用程序中.这会在发布您的应用程序后产生大约5-6天的时间段,其中iOS用户将收到消息"即将推出",而Android用户将是能够立即使用它.)

  3. 最后,如果你真的不想使用C,你可以使用Simply.js(一种不受支持的第三方工具)纯粹用JavaScript编写Pebble应用程序.我从来没有用过这个,主要是因为你似乎只能在你的手表上同时运行一个Simply.js应用程序:

    我该如何使用?

    你需要一个带有OS 2.0的Pebble.

    • 编写一个Simply.js脚本并在线托管.
    • 将Simply.js v0.3.2下载到您的Pebble上.
    • 在新的官方Pebble手机应用程序中转到"我的卵石".
    • 点击Simply.js设置齿轮.
    • 将URL放到脚本中并单击"保存".†您的脚本应立即运行.
    • 玩你的卵石!

    †如果您在Github上托管脚本,请使用脚本的原始URL.

为了使事情更加混乱,使用三种电话API中的任何一种,您都可以使用以下两种通信API之一:

  1. AppMessage 是开发人员可以使用的基础通信API:

    AppMessage是一个双向消息传递子系统,支持手机应用程序和Pebble watchapps之间的通信.这是通过允许电话和watchapps交换任意组的键/值对来实现的.键/值对以Dictionary的形式存储,其布局留给应用程序开发人员定义.

    它工作得相当好,但有时候工作可能有点棘手.如果您正在使用PebbleKitJS,请console.log自由使用,因为没有调试器.

  2. AppSync 是一个声称用于UI同步的更高级别的库:

    AppSync是一个位于AppMessage之上的便利层,可用作AppMessage的UI同步层.通过这样做,AppSync可以更轻松地使用手机应用程序发送的消息来驱动watchapp UI中显示的信息.

    AppSync维护和更新Dictionary,并为您的应用程序提供回调(AppSyncTupleChangedCallback)例程,只要字典更改并且应用程序的UI更新,就会调用该例程.请注意,应用UI不会自动更新.要更新UI,您需要实现回调.

    我还没有使用它,但我即将尝试将应用程序迁移AppMessageAppSync.即使您没有进行UI同步,它看起来也很有用.

除了官方指南和API文档,Pebble还在SDK中提供了许多有用的示例应用程序.由于您似乎对JavaScript选项感兴趣,最有趣的可能是

  • 股票报价应用程序,位于Examples/pebblekit-js/quotes/
  • 天气应用程序,位于Examples/pebblekit-js/weather/.

查看每个应用程序src/<appname>.csrc/js/pebble-js-app.js文件.