首頁 >web前端 >js教程 >iPhone手機上建置nodejs伺服器步驟方法_node.js

iPhone手機上建置nodejs伺服器步驟方法_node.js

WBOY
WBOY原創
2016-05-16 15:51:203386瀏覽

一、為在ios上面運行,編譯jxcore

複製程式碼 程式碼如下:

$ mkdir ~/jxcore 
$ cd ~/jxcore 
$ git clone https://github.com/jxcore/jxcore.git 


複製程式碼 程式碼如下:

$ cd ~/jxcore/jxcore 
$ ./build_scripts/ios-compile.sh 

如果出現import which的module not found問題, 那就透過下面語句安裝python的which

複製程式碼 程式碼如下:

sudo easy_install tools/which-1.1.0-py2.7.egg 

如果出現別的問題,可以參考jxcore編譯ios的前提條件,採取相應措施。
https://github.com/jxcore/jxcore/blob/master/doc/HOW_TO_COMPILE.md


複製程式碼 程式碼如下:

* GCC 4.2 or newer (for SpiderMonkey builds 4.7 ) 
* Python 2.6 or 2.7 
* GNU Make 3.81 or newer 
* libexecinfo (FreeBSD and OpenBSD only) 
* for SpiderMonkey : 'which' python module (sudo easy_install tools/which-1.1.0-py2.7.egg) 

二、 在mac上安裝jxcore

複製程式碼 程式碼如下:

$ ./configure 
$ sudo make install 

三、 建立cordova程序,如果沒有安裝cordova,可以自行安裝。

複製程式碼 程式碼如下:

$ cordova create hello com.example.hello HelloWorld 
$ cd hello 

四、下載安裝jxcore-cordova外掛程式

複製程式碼 程式碼如下:

$ git clone https://github.com/jxcore/jxcore-cordova 

利用jxcore-cordova的模板index.html
複製程式碼 程式碼如下:

$ cp ./jxcore-cordova/sample/www/index.html ./www/ 

拷貝在第一步為在ios上運行而編譯的jxcore包
複製程式碼 程式碼如下:

$ cp -r ~/jxcore/jxcore/out_ios/ios/bin jxcore-cordova/io.jxcore.node/ 

五、新增cordova的ios platform
複製程式碼 程式碼如下:

$ cordova platforms add ios 
$ cordova plugin add jxcore-cordova/io.jxcore.node/ 
$ cordova build 
$ cordova run ios 

如果build出錯,"C does not support default arguments"

只要將預設值去掉一般就會解決問題。

複製程式碼 程式碼如下:

JXCORE_EXTERN(void) 
JX_SetString(JXValue *value, const char *val, const int32_t length = 0); 

修改為
複製程式碼 程式碼如下:

JXCORE_EXTERN(void) 
JX_SetString(JXValue *value, const char *val, const int32_t length); 

重新build即可

六、此時應該可以看到cordova的運作介面。
七、在Resources/jxcore_app/app.js加上nodejs server

在app.js的最後面加上如下程式碼

複製程式碼 程式碼如下:

function getIP() { 
        var os = require('os'); 
        var nets = os.networkInterfaces(); 
        console.log(nets); 
        for ( var a in nets) { 
                var ifaces = nets[a]; 
                for ( var o in ifaces) { 
                                     if (ifaces[o].family == "IPv4" && !ifaces[o].internal) { return iface;                 } 
        } 
        return null; 

var ip = getIP(); 
if (!ip) { 
        console.error("You should connect to a network!"); 
        return; 

 
var http = require('http'); 
http.createServer(function(req, res) { 
        res.writeHead(200, { 
                'Content-Type': 'text/plain' 
        }); 
        var cur_client = ""; 
        if(req.connection && req.connection.remoteAddress) { 
                console.log(req.connection.remoteAddress); 
                cur_client = req.connection.remoteAddress; 
        } else if(req.headers) { 
                console.log("request header X-Forwarded-For"); 
                console.log(req.headers['X-Forwarded-For']); 
                cur_client = req.headers['X-Forwarded-For']; 
        } 
        cordova('log').call('client( ' cur_client ' ) come'); 
        res.end('Hello ' cur_client ', I am server on iphone app(' ip '). ' Date.now() 'n'); 
}).listen(1337, ip); 
console.log('Server running at http://' ip ':1337/'); 

執行程序,即可在xcode的log資訊裡面看到iphone的ip,然後透過網頁就可以瀏覽網頁。
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn