相机无法使用phonegap构建

时间:2016-02-10 00:13:37

标签: android ios cordova

我正在创建一个能够拍照并将其上传到服务器的应用。手机将保存生成的ID。

我创建了一个类abstractApp,它创建了一个带有几个帮助器和变量的App对象。我使用的是Framework7。

var App;


document.addEventListener("deviceready", function() {
App = new abstractApp();
var i;

App.f7Ref = new Framework7({init: false});

for (i = 0; i < App.constants.views.length; i++)
{
    if (i==0)
        App.mainView = App.f7Ref.addView (
            App.constants.views[i].selector,
            App.constants.views[i].settings );

    else
        App.f7Ref.addView (
            App.constants.views[i].selector,
            App.constants.views[i].settings );

}

// Checks if there exists register of remote photos
if ( App.local.get('remotephotos', false) == null || App.local.get('remotephotos', false) == '' )
{
    App.remotephotos = [];
    App.local.set('remotephotos', []);
}
else
{
    App.remotephotos = App.local.get('remotephotos');
}

// Checks if there exists register of local photos
if ( App.local.get('localphotos', false) == null || App.local.get('localphotos', false) == '' )
{
    App.localphotos = [];
    App.local.set('localphotos', []);
}
else
{
    App.localphotos = App.local.get('localphotos');
}


for (i = 0; i < appControllers.length; i++)
{
    appControllers[i].apply(App);
}

console.log(App);

}, false);

在appControllers中我保存与每个页面相关的功能(因此它更有条理)。只有索引和新照片控制器我没有问题,我可以将事件附加到元素并在视图之间导航。问题是调用相机对象。

window.appControllers.push(function()
{
    var $$      = Dom7;
    var Ref     = this.f7Ref;
    var server  = new serverInterface();
    var photos  = this.remotephotos;

    var App = this;

    Ref.onPageInit('new', function (page) {
        Ref.alert('entra', 'entra');
        $$('.capture').on('click', function () {

        Ref.alert('Click', 'Click detected');

        navigator.camera.getPicture(onSuccess, onFail,
        { 
            quality: 20,
            destinationType: destinationType.FILE_URI
        }); 

        function onSuccess(imageURI) {
            Ref.alert('Photo captured.', 'Bien');
        }

        function onFail(message) {
            Ref.alert('There was a problem.', 'Ups');
        }


        });
    });




});

所以,我进入新页面,然后点击带有卡斯捕获的按钮,出现警报(点击检测到),但它没有显示相机拍摄照片。

我使用Phonegap Build和Android手机,你知道发生了什么吗?

非常感谢您提前

1 个答案:

答案 0 :(得分:0)

问题不在于我引用的javascript代码。

我在config.xml中加载了相机插件,就像这样

<gap:plugin name="org.apache.cordova.camera" />

但它应该以这种方式加载:

<plugin name="cordova-plugin-camera"  />

如果未正确加载插件,则会显示Phonegap Build:已安装版本n / a。在这种情况下,正确加载时,会显示:安装版本2.1.0。

有关此主题的更多信息,请访问:http://phonegap.com/blog/2015/11/19/config_xml_changes_part_two/

希望它也可以帮助其他人

此致