我最初拒绝就这个问题发表答案。正如其中一位开发人员所提到的,phonegap.js
除非是生产代码,否则不应包含。
然而,这意味着您无法测试 phonegap 功能。
简单解释一下我的思考过程,在我开发 (php) 的这些年里,我经常设置全局变量,我可以轻松地为dev, stage or production
.
请考虑这可能不是最好的方法,但对我来说它是有效的,我很享受我的主干应用程序的其余部分,而不是目前重新访问它;)
所以,我这样做了:
//Define SD
var SD = {}; //define SD so we can use it globally
/*==================================================
Is Mobile - If true then we are a mobile
================================================== */
SD.isMobile = true;
//This is with the assumtion that your domain contains (for exmaple) http://yourdomain.local
if (document.URL.indexOf("local") > 0 || document.URL.indexOf("sex") > 0) {
SD.isMobile = false;
}
SD = {
isMobile: SD.isMobile,
ENVIROMENT: 'liveApp',
CDN: 'yoururl.com/',
HTTP: 'http://yoururl.com/',
}
// #define the globals depending on where we are -----------------------------------------------------
SD.globals = function () {
switch (window.location.hostname) {
case "sd.local":
SD.ENVIROMENT = 'localApp',
SD.CDN = 'sd.local/',
SD.HTTP = 'http://yoururl.com/',
SD.AJAX = SD.HTTP+'app/';
break;
case "192.168.0.25": //Set to your machines IP address
SD.ENVIROMENT = 'mobilePhone',
SD.AJAX = SD.HTTP+ 'app/';
break;
default:
SD.AJAX = SD.HTTP+'app/';
break;
}
};
现在最后,在完成所有工作后,如果需要,init
我会添加。phonegap.js
if(SD.isMobile){
$.getScript('phonegap.js', function( data, textStatus, jqxhr){
c( "cordova was loaded." );
});