卵石通讯方式

时间:2014-06-24 17:08:10

标签: 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中如何使用它(我目前不知道该怎么做)。

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

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

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

谢谢!

1 个答案:

答案 0 :(得分:7)

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

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

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

    这是在实际手表上运行的。在这里,您可能会创建windowsmenus,也许可以与graphics合作。您可能会设置click handlers to handle button presses

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

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

    • 使用PebbleKit for Android编写的使用Java编写的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用户将收到消息#39; s"即将推出",而Android用户可以立即使用它。)

  3. 最后,如果你真的不想使用C,你可以使用Simply.js(一种不受支持的第三方工具)纯粹用JavaScript编写Pebble应用程序。我从未使用过这个,主要是因为你似乎可以only have one Simply.js app running on your watch at once

      

    我如何使用它?

         

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

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

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

  4. 为了让事情更加混乱,使用三种手机API中的任何一种,您都可以使用以下两种通讯API之一:

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

        

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

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

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

        

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

           

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

      我还没有使用它,但是我要尝试将应用从AppMessage迁移到AppSync。即使您没有进行UI同步,它看起来也很有用。

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

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

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