在pebble js文件中包含外部javascript库?
有没有办法在我的pebble代码中包含一个外部JS库? 按照惯例,在网页上,我会在我的头标签上这样做:在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
<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实现下工作不一样?