在pebble js文件中包含外部javascript库?

在pebble js文件中包含外部javascript库?,javascript,pebble-watch,pebble-sdk,cloudpebble,Javascript,Pebble Watch,Pebble Sdk,Cloudpebble,有没有办法在我的pebble代码中包含一个外部JS库? 按照惯例,在网页上,我会在我的头标签上这样做: <script type='text/javascript' src='https://cdn.firebase.com/js/client/1.0.11/firebase.js'></script> 但在pebble中,我无法做到这一点,因为我只使用JS。因此,如何为JavaScript文件包含外部库。目前,您不能包含外部JS文件 如果您使用的是CloudPeb

有没有办法在我的pebble代码中包含一个外部JS库? 按照惯例,在网页上,我会在我的头标签上这样做:

<script type='text/javascript' src='https://cdn.firebase.com/js/client/1.0.11/firebase.js'></script>


但在pebble中,我无法做到这一点,因为我只使用JS。因此,如何为JavaScript文件包含外部库。

目前,您不能包含外部JS文件

如果您使用的是CloudPebble,那么唯一的方法就是将JS库文件的内容复制并粘贴到JS文件中


如果您正在进行本机开发,您可以修改wscript文件,以便在构建时将多个JS文件合并为一个。

我不确定自上述答案以来是否有更改,但看起来实际上有一种方法可以在保持整洁的同时包含额外的资源。下面是关于这个主题的一些信息


全局命名空间-需要(路径)

加载另一个JavaScript文件,允许您编写多文件项目。包加载松散地遵循CommonJS格式。路径是指向依赖项的路径


然后,您可以使用以下代码在pebble项目中“需要”JS库。这应该在Cloud Pebble和本机开发中都可用

// src/js/dependency.js
var dep = require('dependency');
然后,您可以按如下所示使用它:

dep.myFunction(); // run a function from the dependency
dep.myVar = 2; // access or change variables

更新: 在我自己对此进行了深入研究之后,我已经成功地让CloudPebble使用此功能。它有点复杂,但遵循ECMAScript 6标准。下面我发布了一个简单的设置示例。此外,我建议您查看一个复杂设置的更好参考

myApp.js

var resource = require('myExtraFile');        // require additional library

console.log(resource.value);                  // logs 42

resource.functionA();                         // logs "This is working now"
var myExtraFile = {                           // create a JSON object to export

  "value" : 42,                               // variable

  functionA : function() {                    // function
    console.log("This is working now!");
  }
};

this.exports = myExtraFile;                   // export this function for
                                              // later use
myExtraFile.js

var resource = require('myExtraFile');        // require additional library

console.log(resource.value);                  // logs 42

resource.functionA();                         // logs "This is working now"
var myExtraFile = {                           // create a JSON object to export

  "value" : 42,                               // variable

  functionA : function() {                    // function
    console.log("This is working now!");
  }
};

this.exports = myExtraFile;                   // export this function for
                                              // later use

我认为在Pebble.js和pebblekitjs(v3.8.1)之间存在一些混淆。是一个初出茅庐的SDK,程序员最终将能够编写纯JavaScript。它仍在制作中,因此缺少了一些功能,比如画一条线或获取屏幕尺寸。repo是C和JS源代码的混合体,您可以在其中添加C代码以增强缺失的功能,但其他情况下,您的所有代码都位于
src/JS/app.JS
src/JS/app/
中。不管怎样,Pebble.js确实需要

我不使用CloudPebble,但我知道它要么支持Pebble.js(因此
需要
),要么正计划使用它。我认为所有这些SDK样板代码都将被隐藏

PebbleKit JS不支持
require
开箱即用AFAIK。我提出了一个建议,即端口
需要从Pebble.js到PKJS的支持。更改摘要如下:

  • 将项目的
    src/js/pebble js app.js
    移动到
    src/js/app/index.js
  • src/js/app/index.js
    中删除任何就绪的事件侦听器
    index.js
    will 在发出就绪事件时加载
  • 从Pebble.js添加
    src/js/loader.js
  • ready
    事件中添加一个调用
    require('src/js/app')
    src/js/main.js
  • 使用以下内容更新您的
    wscript
  • 添加新模块时,将它们放在
    src/js/app/
    下,
    require('./name')
    将起作用
  • 我试着在演示文稿中介绍这一切


    顺便说一句,这里有一些问题,但有点让人困惑。

    …但不幸的是,这对PebbleKit.JS应用程序不起作用:[INFO]MyApp\uuuu 1001.0/pebble JS app.JS:1未捕获引用错误:未定义require自6月份以来从未尝试过。他们一定改变了事情。我可以检查一下,因为我最近有一些时间,想回到Pebble开发上来。看看当前的cloud Pebble文档,看起来事情没有多大变化。我的代码应该非常正确。我不确定如果你做的是本地开发而不是云卵石,情况是否会有所不同……只是再次测试。我使用的是Android Pebble应用程序v2.3.1。所有js文件都包含在包中,但只使用pebble-js-app.js。而且
    require
    不起作用:
    [INFO]test\uu 1.0/pebble js app.js:1未捕获引用错误:未定义require
    。另外,
    /data/data/com.getpebble.android/app\u jskit\u installed\u apps/APPNAME/
    中没有安装其他JS文件,只有主JS文件。也许它在iOS实现下工作不一样?