我正在尝试使用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
接下来,我更改了默认的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();
不幸的是,它始终记录“cordova.plugins不可用”。我首先检查了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
文件(位于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
中包含脚本的顺序(位于myApp/www/index.html
):
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript" src="js/index.js"></script>
编辑:我尝试直接从“ zeroconf.js”文件访问ZeroConf
对象,但没有成功。
我编辑了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";
}
}
但是这会显示“ZEROCONF未准备好”...
这是我的索引现在的样子(我只添加了一个带有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 -->
然而,现在我不知道"ZeroConf"是否未定义是因为插件存在问题还是因为它在"index.html"中被包含,无法从"index.js"中访问?
cordova.plugins
的值,但在那里也是undefined
)。 - Kevin