这几天刚研究用完了UniApp和flutter项目的交互,FlutterWeb已经逐渐稳定下来,想到以后可能会有Flutter项目和Flutter Web项目的交互,所以研究了一下交互方式。
困扰我最大的问题就是,Flutter Web(以下简称web项目)以dart的写法,如何去和Flutter交互,如果依然是前端代码交互也就算了,至少还有个js的样子,可是flutter的web项目和uniapp或者vue完全不同,完全是另一套写法,让人摸不到头脑。说到底就是要解决一个问题,写的方法如何相互调用?
目的
我们要做的事情是什么?
在flutter项目中以嵌入h5的方式打开web项目,并且进行交互。交互具体内容是
点击web项目中的获取token按钮,获取到存放在flutter项目中的token,并且弹窗显示出来。
如果你有类似的需求,希望接下来的内容能让你找到答案
预备工作
看本篇内容需要掌握,flutter项目和js相互调用
可以参考这两篇内容:
https://www.jianshu.com/p/86916cab2cf3
https://www.cnblogs.com/lizhanqi/p/13502763.html
简单来说我们要用的知识点,如何把自己写在web项目的方法,可以在js中调用,就像是flutter项目调用其他js方法那样调用。
import 'dart:js' as js;
void testMethod(){
// do something
}
// 起到一个类似注册的作用,这样在js的上下文中,
// 就可以使用testMethod方法了,没有这么写的话,
// 直接调用会告知未找到方法。
// 同时也意味着,flutter项目可以使用webview_flutter插件
// 提供的evaluateJavascript方法调用到这个方法了
js.context["testMethod"] = testMethod
开发环境:
flutter 2.2.3
开始
接下来接直接以web项目来说了。
这事涉及到两个项