有什么办法可以在我的 pebble 代码中包含一个外部 JS 库?通常在网页上,我会在我的头部标签中执行此操作:
<script type='text/javascript' src='https://cdn.firebase.com/js/client/1.0.11/firebase.js'></script>
但是在 pebble 中,我无法做到这一点,因为我只使用 JS。那么如何为 JavaScript 文件包含一个外部库。
有什么办法可以在我的 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 文件合并为一个。
我认为 Pebble.js 与 PebbleKit JS (v3.8.1) 存在一些混淆。Pebble.js是一个新兴的 SDK,最终程序员将能够编写纯 JavaScript。它仍在烹饪中,因此缺少一些功能,例如绘制线条或获取屏幕尺寸的能力。该 repo 是 C 和 JS 源代码的混合,您可以在其中添加 C 代码以增加缺少的功能,否则您的所有代码都存在于src/js/app.js
or中src/js/app/
。无论如何,Pebble.js 确实支持 require
.
我不使用 CloudPebble,但我的印象是它要么支持 Pebble.js(因此支持require
),要么正计划支持。我认为所有这些 SDK 样板代码都将被隐藏。
PebbleKit JS 不支持require
开箱即用的 AFAIK。我做了一个演示,将require
支持从 Pebble.js 移植到 PKJS。变化总结如下:
src/js/pebble-js-app.js
到src/js/app/index.js
.src/js/app/index.js
。index.js
将在发出 ready 事件时加载。src/js/loader.js
从 Pebble.js添加。src/js/main.js
调用事件require('src/js/app')
的方法。ready
wscript
使用以下
deltas更新您的。src/js/app/
并且require('./name')
将起作用。我试图在演示的自述文件中涵盖这一切。
顺便说一句,这是所有不同 SDK 的官方分类,但有点令人困惑。
我不确定自上述答案以来是否发生了变化,但看起来实际上有一种方法可以在保持整洁的同时包含额外的资源。在pebbleJS 页面上,有以下部分包含有关该主题的一些信息。
全局命名空间-需要(路径)
加载另一个 JavaScript 文件,允许您编写多文件项目。包加载松散地遵循 CommonJS 格式。path 是依赖项的路径。
然后,您可以使用以下代码在您的 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 标准。下面我发布了一个简单的例子来进行设置。此外,我建议查看PebbleJS中的这段代码,以便更好地参考复杂的设置。
myApp.js
var resource = require('myExtraFile'); // require additional library
console.log(resource.value); // logs 42
resource.functionA(); // logs "This is working now"
myExtraFile.js
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