使用 apache cordova 2.7 版时出现问题。在浏览器中,当我从 xampp 运行代码时,代码似乎运行良好。但是当我尝试编译到 IOS 时它就不起作用了。
我认为这个问题可能与用于加载车把模板和 html 文件的 require.js 文本插件有关,因为加载文件的文件协议限制。
我还认为这可能与未侦听设备就绪事件有关,但我不确定如何在此设置中正确执行此操作。
我们的 main.js 代码是:
require.config({
shim: {
underscore: {
exports: '_'
},
backbone: {
deps: ['underscore', 'jquery'],
exports: 'Backbone'
},
handlebars: {
exports: 'Handlebars'
},
flipBook: {
deps: ['jquery']
},
touchSlider: {
deps: ['jquery']
}
},
paths: {
jquery: 'libs/jquery',
jquerymobile: 'libs/jquery.mobile',
underscore: 'libs/underscore',
backbone: 'libs/backbone',
handlebars: 'libs/handlebars',
cordovaios: 'libs/cordova-2.7.0',
text: 'libs/text',
flipBook: 'plugins/flipbook.min',
touchSlider: 'plugins/jquery.touchSlider.min'
}
});
// Includes File Dependencies
require(["cordovaios", "jquery", "backbone", "routers/router"], function(
cordova, $, Backbone, Router) {
// Set up the "mobileinit" handler before requiring jQuery Mobile's module
$(document).on("mobileinit", function() {
window.App = {
Models: {},
Collections: {},
Views: {},
Routers: {}
};
$.mobile.linkBindingEnabled = false;
$.mobile.hashListeningEnabled = false;
$(document).on('pagehide', 'div[data-role="page"]', function(event, ui) {
$(event.currentTarget).remove();
});
$(document).on('pagebeforeshow', 'div[data-role="page"]', function () {
$.mobile.showPageLoadingMsg();
});
$(document).on('pageshow', 'div[data-role="page"]', function () {
$.mobile.hidePageLoadingMsg();
});
document.addEventListener('touchmove', function (e) {
e.preventDefault();
});
});
require(["jquerymobile"], function () {
// Instantiates a new Backbone.js Mobile Router
new Router();
});
});