工作中遇到需要在終端引用js引擎,並在此基礎上運行js代碼,並且做到與 終端代碼進行交互。
現在市面上有很多JavaScript引擎庫,比如webkit上的 JavaScriptCore。google運用在chrome上的v8,firefox上的spidermonkey。
對於在iOS的程序而言,因iOS webview 上使用的便是JavascriptCore引擎,所以最方便的便是JavaScriptCore引擎,也不需要引入新的外部的靜態庫。
在iOS 工程中直接引用 JavaScriptCore.framework即可
執行代碼也非常簡單。
由於JavaScriptCore底層由C寫成,例子中直接使用C層的API,所以只要其他的系統,只要引用成功JSC的頭文件,都可以執行。
最簡單的一個例子。
JSGlobalContextRef ctx = JSGlobalContextCreate(NULL); JSStringRef scirpt = JSStringCreateWithUTF8CString("var a = 1 + 1;"); JSEvaluateScript(ctx, scirpt, NULL, NULL, NULL, NULL); JSStringRelease(scirpt);//對象最後需要釋放 JSGlobalContextRelease(ctx);//對象最後需要釋放