node js在iOS中的使用

node js能在在iOS中使用的基础是:第三方框架NodeMobile

集成node js 到iOS项目步骤:

  1. 引入NodeMobile.framework(直接下载,查看最新),并将NodeMobile.framework添加到Embedded Binaries中(TARGETS -> General ->Embedded Binaries)。
NodeMobile.framework有两个版本:
测试使用:Release-universal/NodeMobile.framework
App Store使用:Release-iphoneos/NodeMobile.framework
  1. 设置TARGETS -> BuildSetting ->Bitcode为NO
  2. 调用node js
    3.1 简单调用。直接将代码放在AppDelegate中即可
- (void)startNode {
    NSArray* nodeArguments = [NSArray arrayWithObjects:
                              @"node",
                              @"-e",
                              @"var http = require('http'); "
                              " var versions_server = http.createServer( (request, response) => { "
                              "   response.end('Versions: ' + JSON.stringify(process.versions)); "
                              " }); "
                              " versions_server.listen(3000); "
                              ,
                              nil
                              ];
    [NodeRunner startEngineWithArguments:nodeArguments];
}

3.2 复杂调用。将方法封入main.js、package.json文件中

- (void)startNode {
    NSString* srcPath = [[NSBundle mainBundle] pathForResource:@"nodejs-project/main.js" ofType:@""];
    NSArray* nodeArguments = [NSArray arrayWithObjects:
                              @"node",
                              srcPath,
                              nil
                              ];
    [NodeRunner startEngineWithArguments:nodeArguments];
}

注:将main.js、package.json放入文件夹nodejs-project中,引入文件夹时选择create folder,将其作为资源使用(蓝色),防止 [[NSBundle mainBundle] pathForResource:@"nodejs-project/main.js" ofType:@""]时找不到资源。

main.js代码:

var http = require('http');
var versions_server = http.createServer( (request, response) => {
  response.end('Versions: ' + JSON.stringify(process.versions));
});
versions_server.listen(3000);

package.json代码:

{
  "name": "native-xcode-node-project",
  "version": "0.0.1",
  "description": "node part of the project",
  "main": "main.js",
  "author": "janeasystems",
  "license": ""
}
  1. 终端打开nodejs-project文件夹,执行命令:npm install left-pad(相当于iOS的SDK引入:left-pad)
    如果提示:-bash: npm: command not found,参看npm安装指南

至此,基本整个项目就跑通了。。。

Demo查看此处
参考文档:https://code.janeasystems.com/nodejs-mobile/getting-started-ios

附:npm安装指南

  1. 检查brew -v是否安装了homebrew这个macOS 缺失的软件包的管理器
  2. 安装homebrew。安装跳转到官网指导。等待安装好之后,输入brew -v,如果出现版本号说明已经安装好
  3. 执行brew update更新homebrew
  4. 执行命令行brew install node安装node。
    查看npm版本:npm -v
    npm更新:npm install -g npm
    更新到指定版本:npm -g install [email protected]
  5. npm的使用了,详情请看npm官网

node使用之npm 命令安装模块

  1. 安装 Node.js 模块语法:npm install
  2. 卸载 Node.js 模块语法:npm uninstall
  3. 更新 Node.js 模块语法:npm update
  4. 搜索 Node.js 模块语法:npm search
  5. 查看 模块在目录/node_modules/ 下是否还存在:npm ls

参考文档:https://www.runoob.com/nodejs/nodejs-npm.html

NodeJS学习:
node.js菜鸟教程
node.js中文网
node.js官网

你可能感兴趣的:(node js在iOS中的使用)