miniblink教程2 js调用rust
在教程1里我们已经创建了一个窗口,但只单纯地展示了一个百度的界面,毫无用处。
所以这次我们来创建一个自己的界面,并完成js调用rust,下一篇在介绍rust调用js。

首先,我们先写一下基础的框架,和教程1的内容基本没什么区别。
然后我们定义一个供js调用的方法
我们来分析一下这个方法,js传来的参数在es中,jsValue就是我们返回给js的值。
然后我们去mb中注册这个方法(由于本人太菜,不会写过程宏,所以只能去手动注册),写在Initialize之后,创建窗口之前就行了。
这行代码就类似于js中的。
然后简单写个html界面
然后我们可以去测试一下,看看有没有效果。


下一步就是传入参数了,我们只需要把showLog方法稍微改改,就能获取到js传入的参数了。
其中es.getArg(0)就是获取js传入的第一个参数,他的类型是jsValue,我们可以通过toString来把他转换成&str。
然后我们修改一下html,给他加上一个参数。
接下来我们去看一下效果。

js不仅可以传字符串,还可以传其他类型的变量,这里我们传一下对象试试。
我们可以用getProp获取对象中的值,由于他是jsValue类型的,所以也需要转换。
html代码也改一下
然后我们再测试一下。


调用和传参都搞定了,然后我们来搞返回值。
返回值就很简单了,其实我们之前写的方法都是有返回值的,末尾的 MB::jsUndefined() 就是返回了一个js的undefined,类似的方法有好多种
这里我们拿jsEmptyObject举例,尝试返回一个对象
html
然后我们去看看效果。

很好,我们要的效果已经做到了。

js调用rust的部分到此就结束了,下一篇就是rust执行js了。

