是否可以在移动应用程序的react native、ionic、cordova或native脚本中使用NodeJs服务器端代码?
问题更新:我想使用NodeJs包,并将NodeJs包包含到移动应用程序中(原生脚本、离子,cordova或反应原生)。例如,将instagram privateapi包含到本机脚本中:NodeJs private instagram api
{N}!==浏览器/NodeJS
这是一个纯JS运行时,任何特定于这些平台的api都不能在{N}中工作。尽管板上的nativescript-nodeify插件通过将它们翻译成本地等价物,非常限制了NodeJS api。
我在我的cordova应用程序中使用了许多node.js API(包括googlebaidu/bing/wikipedia),我做了以下操作:
-
在您的linux服务器中安装node.js/express/socket.io。
-
在Cordova应用程序中使用socket.io在应用程序和node.js/ssocket.io服务器之间创建"多个客户端到一台服务器"连接。在里面https://socket.io有一个简单的例子教你怎么做。
-
在Cordova应用程序中,使用socket.emit('FromClientToServerCallAPI',data)之类的东西来调用api。
-
在node.js服务器中,定义一个函数:
socket.on('FromClientToServerCallAPI',data)
在这个函数中,调用你的api,从api提供者那里得到结果后,运行:
socket.emit('FromServerToClientAPIResult',result)
- 在Cordova应用程序中,定义一个函数:
socket.on('FromServerToClientAPIResult',result)
然后用"结果"做一些事情
请。请注意,上面的所有函数都是异步的。
永远不要试图在客户端代码中直接调用api,有些api提供商要求你申请api服务,并给你一个使用api的"密钥",你不想把这个"密钥"放在你的javascript中,并向应用程序的所有用户公开,对吧?
是的,使用nodejs-mobile是可能的。它允许您在移动应用程序中运行一个成熟的Node.js引擎。它适用于Android和iOS。还有其他适用于Android的解决方案,但据我所知,nodejs mobile目前是唯一一个也支持iOS的解决方案。它还附带了React Native和Cordova的插件。
项目网站上提供了包括文件在内的更多信息。
(完全披露:我为开发nodejs移动设备的公司工作。)