gpt4 book ai didi

javascript - Cordova 插件未定义

转载 作者:数据小太阳 更新时间:2023-10-29 06:10:36 24 4
gpt4 key购买 nike

我正在尝试为 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直接从“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";
}
}

但是这显示“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 -->

但是,现在我不知道“ZeroConf”是否未定义,因为插件有问题,或者因为它包含在“index.html”中而无法从“index.js”中访问?

最佳答案

检查 config.xmlJS file cordova-plugin-zeroconf 我发现了这个声明:

<js-module src="www/zeroconf.js" name="ZeroConf">
<clobbers target="cambiocreative.CDVZeroConfig" />
</js-module>

所以插件 API 应该在这个命名空间可用:cambiocreative.CDVZeroConfig

事实上截至 Cordova Plugins documentation :

... tags are allowed within <js-module>:

<clobbers target="some.value"/> indicates that the module.exports is inserted into the window object as window.some.value. You can have as many <clobbers> as you like. Any object not available on window is created. ...

关于javascript - Cordova 插件未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35412821/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com