發表文章

目前顯示的是 9月, 2017的文章

如何使用Objective-C 呼叫 JavaScript - Part II 實戰篇

前情提要,如果我需要require其他的套件,像下面這樣,該怎麼辦? "use strict" ;  var   version  =  require ( '../lerna.json' );  var   core   =   require ( '../packages/web3-core' );  var   Eth   =   require ( '../packages/web3-eth' );  var   Net   =   require ( '../packages/web3-net' );  var   Personal   =   require ( '../packages/web3-eth-personal' );  var   Shh   =   require ( '../packages/web3-shh' );  var   Bzz   =   require ( '../packages/web3-bzz' );  var   utils   =   require ( '../packages/web3-utils' ); 最後找到一個方法,不知道是不是唯一,也不知道是不是最好的(歡迎有經驗的人一起分享),我使用了 Browserify 。就我的認知,Browserify就是把require到的檔案,全部打包到一個檔案裡,也就是你最後會有一個幾千行的 .js檔案。 首先,先安裝npm(npm就是Node.js安裝管理工具,如何安裝npm,可以參考 這裏 ) 再來,寫一個 .js檔案,把你需要的套件require進來,然後assign給window這個物件, // index.js "use strict" let Web3 = require ( '../3rd_party/web3.js-1.0.0' ); window . Web3 = Web3 ; 切到index.js的目錄下,輸入 $ browserify index.js -o myWeb3.js 你可能會碰到幾個問題,第一個

如何使用Objective-C 呼叫 JavaScript - Part I 基礎篇

之前工作需要在ios上開發Ethereum 類電子錢包的SDK,(離線狀態)做交易的打包,簽章,呼叫ABI等等之類的,Geth, ethereum.io都有部分達不到我們需求的地方,最後採用Web3.js Objective-C經驗不是很多,JavaScript根本就不會,所以在找solution的過程,吃了不少苦頭。找了不少資料,看到的都是透過這兩種方式呼叫 WebView:JavaScript是寫在html裡的,所以需要多一個html檔案 JavaScriptCore:直接呼叫 .js檔案,類似node.js的方式,比較直接 網路上的範例大概都長得像這個樣子,直接把功能寫在html裡 <html> <head> <script> function myFunction () { alert ( "Hello World!" ); } </script> </head> <body> <button onclick = " myFunction () " > Try me </button> </body> </html> Objective-C的部分大概長得像這樣, 一定要在有UI的檔案裡 // @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // 先取得html檔案路徑,使用webview loads html NSBundle * thisBundle = [ NSBundle mainBundle ]; NSString * path = [ thisBundle pathForResource :@ "first" ofType :@ "html" ]; N