miniblink教程2 js調(diào)用rust
在教程1里我們已經(jīng)創(chuàng)建了一個(gè)窗口,但只單純地展示了一個(gè)百度的界面,毫無用處。
所以這次我們來創(chuàng)建一個(gè)自己的界面,并完成js調(diào)用rust,下一篇在介紹rust調(diào)用js。

首先,我們先寫一下基礎(chǔ)的框架,和教程1的內(nèi)容基本沒什么區(qū)別。
然后我們定義一個(gè)供js調(diào)用的方法
我們來分析一下這個(gè)方法,js傳來的參數(shù)在es中,jsValue就是我們返回給js的值。
然后我們?nèi)b中注冊這個(gè)方法(由于本人太菜,不會寫過程宏,所以只能去手動注冊),寫在Initialize之后,創(chuàng)建窗口之前就行了。
這行代碼就類似于js中的。
然后簡單寫個(gè)html界面
然后我們可以去測試一下,看看有沒有效果。


下一步就是傳入?yún)?shù)了,我們只需要把showLog方法稍微改改,就能獲取到j(luò)s傳入的參數(shù)了。
其中es.getArg(0)就是獲取js傳入的第一個(gè)參數(shù),他的類型是jsValue,我們可以通過toString來把他轉(zhuǎn)換成&str。
然后我們修改一下html,給他加上一個(gè)參數(shù)。
接下來我們?nèi)タ匆幌滦Ч?/p>
js不僅可以傳字符串,還可以傳其他類型的變量,這里我們傳一下對象試試。
我們可以用getProp獲取對象中的值,由于他是jsValue類型的,所以也需要轉(zhuǎn)換。
html代碼也改一下
然后我們再測試一下。


調(diào)用和傳參都搞定了,然后我們來搞返回值。
返回值就很簡單了,其實(shí)我們之前寫的方法都是有返回值的,末尾的 MB::jsUndefined() 就是返回了一個(gè)js的undefined,類似的方法有好多種
這里我們拿jsEmptyObject舉例,嘗試返回一個(gè)對象
html
然后我們?nèi)タ纯葱Ч?/p>
很好,我們要的效果已經(jīng)做到了。

js調(diào)用rust的部分到此就結(jié)束了,下一篇就是rust執(zhí)行js了。