已经审核: How to make a phonegap mobile app from SailsJS和SailsJS to Phonegap?,但未找到真正的答案。 我想实现一个项目,后端是SailsJS,前端是:1)Web客户端; 2)PhoneGap客户端;
我查看了https://github.com/coderaven/sails-docs/blob/master/What-Is-Sails.md,其中提到了PhoneGap / Cordova的用法,但是,再次 - 并非提供真实的例子。
所以如果有人可以分享一个样板示例,包括Sails和PhoneGap / Cordova,或者至少要分享一些示例代码,我将不胜感激。
答案 0 :(得分:4)
花了几天时间进行研究和试验/失败后,让我分享一下对我有用的解决方案。 我将把答案分成两部分:
SailsJS
sails www
- 它将生成已在此处说明的内容https://github.com/coderaven/sails-docs/blob/master/What-Is-Sails.md#phonegap-chrome-extensions-and-spa-friendliness assets/js/app.js
文件(如果有),否则它将在以后重写相同的app.js
文件在您的PhoneGap www/js
文件夹中。http://localhost:1337
PhoneGap / Cordova
www
文件夹。www
文件夹(请参阅第1点),然后将其内容复制到PhoneGap www
文件夹中。打开www/index.html
文件并在关闭body
代码前添加以下代码:
(function onLoad() {
var io;
Object.defineProperty(window, 'io', {
get: function get() {
return io;
},
set: function set(value) {
var sails;
io = value;
// Immediately start connecting
var socket = io.connect(backendURL);
console.log('Connecting Socket.io to Sails.js...');
// Attach a listener which fires when a connection is established:
socket.on('connect', function socketConnected() {
console.log('Socket is now connected and globally accessible as `socket`.\n');
// set additional socket listeners here
});
Object.defineProperty(io, 'sails', {
get: function get() {
return sails;
},
set: function set(value) {
sails = value;
sails.url = 'backendUrl';
}
});
}
});
})();
当然,不要忘记将其括在<script>
标记中并为backendUrl
设置正确的值 - 这是您的SailsJS网址。