PhoneGap 构建插件不起作用

Posted

技术标签:

【中文标题】PhoneGap 构建插件不起作用【英文标题】:PhoneGap Build Plugins not functioning 【发布时间】:2013-11-09 08:07:14 【问题描述】:

我正在构建一个 PhoneGap Build 应用程序,我需要一些插件。我已经关注了文档,但没有一个工作。由于他们都没有工作,我想这是一个常见的问题。这是config.xml 文件中的插件:

<!-- Plugins -->  
<gap:plugin name="org.apache.cordova.device" /> <!-- Device plugin -->  
<gap:plugin name="com.phonegap.plugin.statusbar" /> <!-- Status bar plugin -->  
<gap:plugin name="com.verso.cordova.clipboard" /> <!-- Clipboard plugin -->  
<gap:plugin name="com.chariotsolutions.cordova.plugin.keyboard_toolbar_remover" /> <!-- Keyboard toolbar removal plugin -->  
<gap:plugin name="org.apache.cordova.splashscreen" /> <!-- Splashscreen plugin -->  
<gap:plugin name="org.apache.cordova.vibration" /> <!-- Vibration plugin -->

这是index.html 文件中的链接(如果有问题,我最好的猜测是它会在这里):

<!-- PhoneGap Build -->  
<script src="phonegap.js"></script>  
<script src="device.js"></script>  
<script src="statusbar.js"></script>  
<script src="clipboard.js"></script>  
<script src="keyboard_toolbar_remover.js"></script>  
<script src="splashscreen.js"></script>  
<script src="vibration.js"></script>

除了设备插件(触发 'deviceready' 事件)外,没有其他工作。

以下是 javascript 文件中的一些代码:

document.addEventListener("deviceready", function(e)   
   // Hiding the status bar as even the fullscreen preference in config.xml isn't working
    StatusBar.hide();  
    window.setTimeout(function()    
        // Trying to hide the splash screen which also doesn't work (or even show) properly from config.xml
        navigator.splashscreen.hide();  
    , 4000); 
, "false");  

我用警报测试了这个函数,我可以向你保证它确实被调用了。这里还有一些:

// This is for the clipboard plugin  
function handleCopyAndPaste()   
    $(".copyButton").click(function()   
        window.plugins.clipboard.copy($("#result").val());  
    );  
    $(".pasteButton").click(function()   
        window.plugins.clipboard.paste(function (text)    
            $("#convertThis").val(text);  
            convert();  
        );  
    );  
 

这是为了振动:

navigator.notification.vibrate(2500);

这是为了在名为#convertThis 的输入字段具有focus() 时隐藏键盘工具栏:

$("#convertThis").focus(function() 
    toolbar.hide()
);

我尝试删除 index.html 中的 js 链接,但仍然没有。我还尝试将插件标签放在config.xml 中的小部件标签之外,然后......什么都没有!奇怪的是,PhoneGap Build 仪表板中的插件选项卡显示没有安装:

(来源:uzusoft.com)

如果您可以就此事提供任何帮助,请提供帮助!也请关于 config.xml 问题。

更新:我目前使用 PhoneGap Build 3.1.0 是为了支持 ios 7。

【问题讨论】:

你需要做以下步骤: 1. 原生代码中的android插件(Android插件) 2. 调用函数的html部分 3. 编写js函数调用原生代码 4. 在config.config中配置插件xml 你的 android 本机代码在哪里。如果您提供其他人可以看到这就是问题所在。在以下链接中查看如何使用 android 插件的示例:***.com/questions/19721772/… @power_scriptor 我没有在本地使用PhoneGap...我正在使用PhoneGap Build,因此我不维护本机API,也无法编写本机代码。所有这些插件都是PhoneGap Build Plugins页面中提供的插件。此外,我正在为所有平台构建,而不仅仅是 Android。 你应该发布你的整个 index.html 页面和 config.xml,上面所有的代码看起来都很好,所以它必须在其他地方。 PS - 你能在“deviceready”触发后收到警报吗? @Red2678 抱歉迟到了,网站已关闭。 deviceready 事件触发了!我确实收到了警报。我的 index.html 页面也是空的,因为所有元素都是通过 jQuery 插入的。 【参考方案1】:

我意识到我在config.xml 文件中犯了一个错误,从而解决了这个问题:

这个:xmlns:gap = "http://phonegap.com/ns/1.0"xmlns:gap = "http://phonegap.com/ns/3.1.0",因为我认为这是使用 Cordova 3.1.0 所必需的,但实际上与它没有任何关系。

【讨论】:

轰隆隆! :D 对不起,我迟到了!很高兴你修好了。 很好,我遇到了同样的问题并意识到我忘记了 /ns :-)【参考方案2】:

把config.xml放到www目录下。然后在 build.phone.com 上只上传 www.zip。

【讨论】:

以上是关于PhoneGap 构建插件不起作用的主要内容,如果未能解决你的问题,请参考以下文章

PhoneGap MediaCapture 插件不起作用

使用 phonegap 构建服务的插件 plugin.google.maps 在 ios 上不起作用

从 phonegap 中删除了平台,现在插件不起作用

带有phonegap adobe build的FacebookConnect插件不起作用

使用 Phonegap 构建时,cordova-plugin-whitelist 不起作用

将插件添加到 Phonegap (3.1.0) Cleaver 应用程序不起作用