Kev*_*vin 6 javascript cordova cordova-plugins
我正在尝试使用Cordova的ZeroConf插件.我之前从未使用任何Cordova插件.
这些是我做的步骤:
cordova create myApp
cordova platform add android
cordova platform add ios
cordova platform add browser
cordova plugins add https://github.com/cambiocreative/cordova-plugin-zeroconf
Run Code Online (Sandbox Code Playgroud)
之后,我更改了默认onDeviceReady函数,以便"index.js"文件(在myApp/www/目录中)如下所示:
var app = {
...
onDeviceReady: function() {
app.receivedEvent('deviceready');
if(cordova && cordova.plugins) {
console.log('cordova.plugins is available');
} else {
console.log('cordova.plugins NOT available');
}
},
...
};
app.initialize();
Run Code Online (Sandbox Code Playgroud)
不幸的是,它总是记录"cordova.plugins not available".我首先检查了是否cordova存在,然而它确实cordova.plugins是未定义的.请注意,我在浏览器(cordova run browser)中测试这个以找到问题,一旦cordova.plugins不再定义,我将能够使用ZeroConf插件.
我搜索了几个小时,阅读了很多类似的主题,但没有一个可以帮助我.
我尝试了什么:
cordova plugin ls - > ZeroConf插件存在 com.cambiocreative.cordova.plugin.zeroconf 1.0.9 "Cordova ZeroConf Plugin"
已验证index.html加载cordova.js脚本
我编辑了config.xml文件(in myApp/www/config.xml)并添加了<plugin name="com.cambiocreative.cordova.plugin.zeroconf" version="1" />,但这没有帮助.也尝试<feature name="ZeroConf"><param name="android-package" value="com.cambiocreative.cordova.plugin.ZeroConf" /><param name="onload" value="true" /></feature>没有成功.
这是我在index.html(in myApp/www/index.html)中包含脚本的顺序:
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript" src="js/index.js"></script>
Run Code Online (Sandbox Code Playgroud)
编辑:我试图ZeroConf直接从"zeroconf.js"文件访问该对象,但没有成功.
我编辑了onDeviceReady功能:
onDeviceReady: function() {
app.receivedEvent('deviceready');
var el = document.getElementById("zcOK");
if(typeof ZeroConf !== 'undefined') {
el.innerHTML = "ZEROCONF READY";
} else {
el.innerHTML = "ZEROCONF NOT READY";
}
}
Run Code Online (Sandbox Code Playgroud)
但这显示"ZEROCONF NOT READY"......
这就是我的索引现在的样子(我只添加一个段落id="zcOK"来显示上面的内容).
<p id="zcOK">ZeroConf test</p>
<!-- ORDER IN WHICH THE SCRIPTS ARE LOADED -->
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript" src="../plugins/com.cambiocreative.cordova.plugin.zeroconf/www/zeroconf.js"></script>
<script type="text/javascript" src="js/index.js"></script> <!-- Contains the onDeviceReady function -->
Run Code Online (Sandbox Code Playgroud)
但是,现在我不知道"ZeroConf"是否未定义,因为插件存在一些问题或因为它不能从"index.js"中访问,因为它包含在"index.html"中?
检查config.xml和cordova-plugin-zeroconf的JS 文件,我发现了这个声明:
<js-module src="www/zeroconf.js" name="ZeroConf">
<clobbers target="cambiocreative.CDVZeroConfig" />
</js-module>
Run Code Online (Sandbox Code Playgroud)
所以插件 API 应该在这个命名空间可用:cambiocreative.CDVZeroConfig
事实上,截至Cordova 插件文档:
... 标签允许在
<js-module>:
<clobbers target="some.value"/>表示 module.exports 作为 插入到 window 对象中window.some.value。您可以拥有任意数量的<clobbers>。创建窗口上不可用的任何对象。...
| 归档时间: |
|
| 查看次数: |
9159 次 |
| 最近记录: |