node js在iOS中的使用
2019-07-04 本文已影响0人
OwenWong
node js能在在iOS中使用的基础是:第三方框架NodeMobile
集成node js 到iOS项目步骤:
- 引入NodeMobile.framework(直接下载,查看最新),并将NodeMobile.framework添加到Embedded Binaries中(TARGETS -> General ->Embedded Binaries)。
NodeMobile.framework有两个版本:
测试使用:Release-universal/NodeMobile.framework
App Store使用:Release-iphoneos/NodeMobile.framework
- 设置TARGETS -> BuildSetting ->Bitcode为NO
- 调用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": ""
}
- 终端打开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安装指南
- 检查
brew -v是否安装了homebrew这个macOS 缺失的软件包的管理器 - 安装
homebrew。安装跳转到官网指导。等待安装好之后,输入brew -v,如果出现版本号说明已经安装好 - 执行brew update更新homebrew
- 执行命令行brew install node安装node。
查看npm版本:npm -v
npm更新:npm install -g npm
更新到指定版本:npm -g install npm@6.8.0 - npm的使用了,详情请看npm官网
node使用之npm 命令安装模块
- 安装 Node.js 模块语法:npm install <Module Name>
- 卸载 Node.js 模块语法:npm uninstall <Module Name>
- 更新 Node.js 模块语法:npm update <Module Name>
- 搜索 Node.js 模块语法:npm search <Module Name>
- 查看 模块在目录/node_modules/ 下是否还存在:npm ls
参考文档:https://www.runoob.com/nodejs/nodejs-npm.html
NodeJS学习:
node.js菜鸟教程
node.js中文网
node.js官网