2016-12-02 43 views
0

我有一个使用OnsenUI,Monaca和Cordova构建的跨平台应用程序,并且使用Visual Studio作为我的IDE。在Visual Studio中安装和使用Cordova插件

我的Monaca在Visual Studio中配置成使用导THIS和它工作100%。

我需要我的应用程序中,即使应用程序被关闭等后台运行,并为这个我已经通过安装Visual Studio插件THIS实现的任务。

钛安装插件,在Visual Studio中我选择我的项目的config.xml文件,然后选择 - >插件 - >自定义 - > Git和输入与上述插件的URL。 Visual Studio安装插件,我收到一条成功消息。我检查我的项目的文件夹结构,并在插件文件夹,我看到已安装的插件。

我也以类似的方式安装其他插件如前相机,它已按预期工作。

然后我尝试使用的插件功能,按使用指南HERE但我不断收到错误“遗漏的类型错误:无法读取的未定义的属性‘backgroundMode’”

我也试图根据一些建议调用函数如下,但我仍然得到相同的错误。

window.cordova.plugins.backgroundMode.setDefaults({ text: 'Doing heavy tasks.' }); 

我尝试调用函数如下一个控制器(简称样品)

var mainNavigation = angular.module("mainNavigationController", []); 
mainNavigation.controller("MainNavigationController", function ($scope, NetworkConnection) { 
    var init = function() { 
     document.addEventListener("deviceready", onDeviceReady, false); 
    }; 

    init(); 

    function onDeviceReady() { 
     cordova.plugins.backgroundMode.setDefaults({ text: 'Doing heavy tasks.' }); // Not working 
     window.cordova.plugins.backgroundMode.setDefaults({ text: 'Doing heavy tasks.' }); // Not working either 
    }; 
}); 

我也尝试添加示例代码如下我的项目loader.js文件(简称版本),但我又得到了同样的错误。

// This is an auto-generated code by Monaca JS/CSS Components. Please do not edit by hand. 
/*** <Start:monaca-cordova-loader> ***/ 
/*** <Start:monaca-cordova-loader LoadJs:"components/monaca-cordova-loader/cordova-loader.js"> ***/ 
(function(){ 
    function getDeviceObjectForPreview() { 
    // Code omitted 
    } 

/*** <Start:monaca-core-utils> ***/ 
/*** <Start:monaca-core-utils LoadJs:"components/monaca-core-utils/monaca-core-utils.js"> ***/ 
/*** Monaca Core Utility Library. This library requires cordova.js ***/ 
window.monaca = window.monaca || {}; 
(function() { 
    // Code omitted 

    monaca.isDeviceReady = monaca.isDeviceReady || false; 
    document.addEventListener('deviceready', function(){ 
     window.monaca.isDeviceReady = true; 
     monaca.apiQueue.next(); 

     cordova.plugins.backgroundMode.setDefaults({ text: 'Doing heavy tasks.' }); // Not working 
    }, false); 
} 

我还没有在我的index.html文件中导入任何文件,例如

<script src="js/canvasDraw/signatureCapture.js"></script> 

为什么我得到未定义的错误?我已经检查并且cordova.js也是从loader.js加载的。

回答

0

请确保您使用的是device emulator,但不仅仅是基于浏览器的仿真器(如Ripple-Nexus)。

在浏览器插件将无法正常工作。这种模式只适用于调试你的JS应用程序和一些通用的API。

Ripple Simulator文档,你可以找到:

Caution: Ripple doesn’t provide a complete simulation of Cordova APIs or native device capabilities (plugins). It also doesn’t simulate specific browser versions for a particular platform. You can achieve this by testing on actual devices or emulators.

相关问题