文件插件无法与PhoneGap Build一起使用

时间:2014-08-08 14:55:29

标签: cordova phonegap-plugins phonegap-build

我一直在与此作斗争。我还没有发现很多其他人遇到这个问题,我找到的那些人没有安装File插件。

就我而言,File插件是作为File-Transfer的依赖项安装的。

问题:当我直接从我的PC构建并安装应用程序到我的Android设备时,一切正常,但是当它使用PhoneGap Build构建时,它不会工作

会发生什么:在app.initialize()中,我调用cordova.file.applicationStorageDirectory:

var app = {
    initialize: function() {
        this.bindEvents();
    },

    bindEvents: function() {
        document.addEventListener("deviceready", this.onDeviceReady, false);
    },

    onDeviceReady: function() {
        initApp();
        alert(1);
        alert(cordova.file.applicationStorageDirectory);
        alert(2);
    }
};

当我在本地构建和安装时,会显示所有三个警报,并且目录路径是正确的,但是当它显示由PhoneGap Build alert(1);构建时,但后两个调用不是&#39 ;吨。这让我相信cordova.file是未定义的。

我已经尝试过使用PhoneGap Build的远程调试工具,但是在控制台中似乎没有任何内容可以打印出来,尽管文档说明应该这样做。

以下是安装的插件: enter image description here

这是我的config.xml:

<?xml version='1.0' encoding='utf-8'?>

<widget xmlns     = "http://www.w3.org/ns/widgets"
        xmlns:gap = "http://phonegap.com/ns/1.0"
        id        = "id-removed"
        version   = "0.0.0">

    <preference name="phonegap-version" value="3.3.0" />

    <name>Name removed</name>

    <description>
        Description removed.
    </description>

    <author email="email removed" href="removed">
        Removed
    </author>

    <content src="index.html" />

    <icon src="icon.png" />

    <preference name="Orientation" value="portrait" />

    <access origin="*" />

    <gap:plugin name="org.apache.cordova.camera" version="0.2.9"/>
    <gap:plugin name="org.apache.cordova.device-motion" version="0.2.6"/>
    <gap:plugin name="org.apache.cordova.device-orientation" version="0.3.5"/>
    <gap:plugin name="org.apache.cordova.file-transfer" version="0.4.2"/>
    <gap:plugin name="org.apache.cordova.geolocation" version="0.3.7"/>
    <gap:plugin name="org.apache.cordova.globalization" version="0.2.6"/>
    <gap:plugin name="org.apache.cordova.inappbrowser" version="0.2.4"/>
    <gap:plugin name="org.apache.cordova.network-information" version="0.2.7"/>
    <gap:plugin name="de.appplant.cordova.plugin.local-notification" version="0.7.4"/>
</widget>

感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

试试这个

var debugFilePlugin = function(){
    try{
        if (cordova.file && typeof(cordova.file == 'object')) {
            alert(JSON.stringify(cordova.file));
            if (cordova.file.applicationStorageDirectory) {
                alert(cordova.file.applicationStorageDirectory);
            }
        } else {
            alert('cordova.file is a ' + typeof cordova.file + ' value.');
        }
    } catch(e){
        var t = typeof e ;
        if(t == "object") {
            alert(JSON.stringify(e));
        } else if (t == "string") {
            alert(e);
        } else {
            alert("typeof e =" + t);
        }
    }        
};

debugFilePlugin();

答案 1 :(得分:0)

好的,我只是在几个小时前了解我的眼睛:

In the official documentation,它说:

  

从v1.2.0 开始,提供了重要文件系统目录的URL。 [...]

当您使用phonegap构建平台构建项目时,最新可用版本为1.0.1

请参阅:https://build.phonegap.com/plugins/617

这种情况,cordova.file将保持undefined

Phonegap构建似乎遇到了一些升级插件的困难,甚至是核心插件。

相关问题