如何实现SailsJS + Phonegap / Cordova应用程序

已经审查: 如何从SailsJS和SailsJS phonegap 制作phonegap移动应用程序 ? ,但没有find真正的答案。 我想实现一个项目,后端是SailsJS,前端是:1)Web客户端; 2)PhoneGap客户端;

我查看了https://github.com/coderaven/sails-docs/blob/master/What-Is-Sails.md ,其中提到了PhoneGap / Cordova的使用情况,但同样没有提供实际的例子。

所以我会很感激,如果有人可以分享包括Sails和PhoneGap /cordova的样板例子,或者至less分享一些示例代码。

花了几天的时间进行研究和试验后,让我分享一下适用于我的解决scheme。 我将分两部分来回答:

  1. SailsJS

    • 对于已经开发的SailsJS项目,只需从你的sails项目文件夹中执行sails sails www – 它将产生这里已经解释的内容https://github.com/coderaven/sails-docs/blob/master/What-Is-Sails.md# PhoneGap的铬的扩展和水疗中心友好
    • 请注意,如果您有assets/js/app.js文件,请重命名它,否则稍后将在您的PhoneGap www/js文件夹中重写相同的app.js文件。
    • 确保你知道URL,你的项目已经取消 – 默认情况下是http://localhost:1337
  2. PhoneGap /cordova

    • 创build您的PhoneGap项目。 它会产生PhoneGap项目文件夹内的www文件夹。
    • 在你当前的sails项目中find你的www文件夹(见第1点),并将其内容复制到PhoneGap www文件夹中。
    • 打开www/index.html文件并在closuresbody标签之前添加下面的代码:

        (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 URL。

  • 编译你的PhoneGap项目并享受