美文网首页
2020-04-23

2020-04-23

作者: 风挽舟 | 来源:发表于2020-04-23 19:44 被阅读0次

                        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的朋友

相关文章

网友评论

      本文标题:2020-04-23

      本文链接:https://www.haomeiwen.com/subject/rxfzihtx.html