FLutter Plugin踩坑记录
第一次写这类记录文章,写的比较稀烂,直入主题吧
因为之前是android开发,这边就直接是android studio了
新建flutter plugin 在as中 ,是可以直接新建Flutter plugin 的 File=》New =》 New Flutter Project
第一步 一路next到这一步这一步finish之后就创建好了,但是这里出现了第一个坑,目前我还没找到原因的,也写出来,初步判断可能是studio版本或者我设置的问题
问题:这边按照正常情况来说,在这里吧Include Kotlin support for Android code的钩给去掉之后,生成的项目中的android部分应该是java文件,但是我这边这样新建好之后,android目录下src=》main 里面的直接全部隐藏掉了,看不到,在文件夹中可以看到,但是很神奇的是都是kotlin文件 ,后面因为时间问题,也没有花很多时间去研究,我这边就直接选择使用kotlin了
新建好的flutter plugin项目目录从图中可以看到,完整的flutter plugin下面的目录是android ios lib以及一个之前命名的example的flutter项目
这几个文件夹中,字面可以看出,android ios分别是存放android跟ios代码的,包括第三方控件,然后lib下面的dart文件则是我们对外开放的接口api,如下图
对外api那么基本的新建flutter plugin以及新建之后目录的基本情况介绍完了,接下来则是在使用过程中踩的坑了
android下面的Plugin这里是踩的第一个坑,其实也是自己没注意,这边是提供了两种注册的方法的,就是上图中的两个方法,因为之前看的文章,有的是用的registerWith这个方法进行注册,当时我没注意,我也是在这个方法里面进行取context,但是发现一直获取不到并且报错,找了很久没找到原因,然后定下心来看代码,发现两个方法中间已经给了清晰的注释,那么怎么确定自己使用的是什么呢
两种方法设置地方如上图,这边可以查看两种方法,我这边默认生成的是图1的方法,因此我这边也就使用这个方法了
调用api一般来说,我们使用第三方控件sdk,都会需要进行一个初始化,那么我这边就以初始化为例了
如上图,call.method 相当于标识符,该判定符与api一致,然后在这边调用初始化的sdk,进行初始化的操作
api调用sdk初始化完成之后,在lib中的dart文件中开始写api,如上图,这样一个完成的调用第三方sdk的flutter plugin就完成了
引用第三方sdk
导入第三方sdk导入完成之后,是不是看上去已经可以用了呢,其实不是,还需要一步,这一步实际上应该是我们在使用的时候需要注意的
一定要注意,在使用的flutter项目中的androidManifest中加入xmlns:tools="http://schemas.android.com/tools"
tools:replace="label",这个,要不然会报错
到此一个使用第三方sdk的flutter plugin就完全建立好了
然后说一下在这个过程中出现的另外一个问题,在这个plugin的android中,调用第三方sdk方法的时候,是没有代码提示的,需要自己写,同样的,包也需要自己手动导,因为暂时没有找到人讨论,这边建议大家可以先用android直接新建一个项目使用这个三方sdk,然后直接把需要导的包复制过来,这样比较方便快捷
大概就是这么多了,第一次写,有不足多多见谅,希望能帮到正在入坑或者即将入坑flutter的朋友
网友评论