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

时间:2015-10-27 20:43:24

标签: node.js cordova ionic-framework sails.js

已经审核: How to make a phonegap mobile app from SailsJSSailsJS to Phonegap?,但未找到真正的答案。 我想实现一个项目,后端是SailsJS,前端是:1)Web客户端; 2)PhoneGap客户端;

我查看了https://github.com/coderaven/sails-docs/blob/master/What-Is-Sails.md,其中提到了PhoneGap / Cordova的用法,但是,再次 - 并非提供真实的例子。

所以如果有人可以分享一个样板示例,包括Sails和PhoneGap / Cordova,或者至少要分享一些示例代码,我将不胜感激。

1 个答案:

答案 0 :(得分:4)

花了几天时间进行研究和试验/失败后,让我分享一下对我有用的解决方案。 我将把答案分成两部分:

  1. SailsJS

  2. PhoneGap / Cordova

    • 创建PhoneGap项目。它将在您的PhoneGap项目文件夹中生成www文件夹。
    • 在当前的sails项目中找到您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';
                      }
                  });
              }
          });
        })();
      
  3. 当然,不要忘记将其括在<script>标记中并为backendUrl设置正确的值 - 这是您的SailsJS网址。

    • 编译您的PhoneGap项目并享受