隨著3月4日f(shuō)lutter2.0的發(fā)布爱榔,flutter web也迎來(lái)的穩(wěn)定版蛤奢,以前想要打包flutter web項(xiàng)目要先切換flutter channel 纷跛,再 flutter upgrade 汪榔,非常麻煩啊胶,現(xiàn)在就非常方便了赦拘,直接在同一channel下就可以打包android慌随、ios、web等項(xiàng)目躺同,只想說(shuō)真香阁猜,
由于不同系統(tǒng)有些功能不一樣,所以就需要針對(duì)不同的項(xiàng)目做插件適配蹋艺,今天就煎蛋記錄一下怎么開(kāi)發(fā)flutter插件
1.新建插件項(xiàng)目剃袍,這里使用AndroidStudio
2.給插件命名以及描述等
看下插件項(xiàng)目的目錄結(jié)構(gòu)
插件聲明代碼
class CashotPlugin {
????static const MethodChannel _channel = const MethodChannel('cashot_plugin');
????static Future<String> get platformVersion async {
????????????final String version = await _channel.invokeMethod('getPlatformVersion');
????????????return version;
????}
????///人臉sdk初始化
????static Future<void> init(String key, String secrit) async {
????????????await _channel .invokeMethod("liveness_init", {"args1": key, "args2": secrit});
????}
}
4.android插件
仿照自動(dòng)生成的代碼,完善自己的自定義插件就ok了捎谨,沒(méi)有什么難度
5web插件
首先要配置一下插件位置
我們?cè)賚ib目錄下新建web文件夾民效,然后新建web_plugin.dart文件憔维,然后在pubspec.yaml配置文件里配置插件信息,默認(rèn)是沒(méi)有的畏邢,如下
我們可以在web_plugin.dart文件里做一些flutter和js的交互
首先要導(dǎo)入dart:js這個(gè)包
import 'dart:js' as js;
//flutter調(diào)用js的console.log('xxx');方法
js.context['console'].callMethod('log', call.arguments);
//flutter 調(diào)用alert
js.context.callMethod("alert",["暫不支持"]);
格式如下:
js.context['對(duì)象'].callMethod('方法名', 數(shù)組參數(shù));
js調(diào)用flutter代碼分兩步:1.聲明flutter函數(shù)业扒。2,綁定js方法
js.context["flutterMethod"]=(params){
? ? //do any dart method
};
在js里直接調(diào)用flutterMethod就可以了
flutterMethod("xxxx");