2020-04-23

? ? ? ? ? ? ? ? ? ? ? ? FLutter Plugin踩坑記錄

第一次寫這類記錄文章,寫的比較稀爛,直入主題吧

因?yàn)橹笆莂ndroid開發(fā),這邊就直接是android studio了

新建flutter plugin? ? 在as中 ,是可以直接新建Flutter plugin 的? ?File=》New =》 New Flutter Project


第一步


一路next到這一步

這一步finish之后就創(chuàng)建好了,但是這里出現(xiàn)了第一個(gè)坑,目前我還沒找到原因的,也寫出來,初步判斷可能是studio版本或者我設(shè)置的問題

問題:這邊按照正常情況來說,在這里吧Include Kotlin support for Android code的鉤給去掉之后,生成的項(xiàng)目中的android部分應(yīng)該是java文件,但是我這邊這樣新建好之后,android目錄下src=》main 里面的直接全部隱藏掉了,看不到,在文件夾中可以看到,但是很神奇的是都是kotlin文件? ?,后面因?yàn)闀r(shí)間問題,也沒有花很多時(shí)間去研究,我這邊就直接選擇使用kotlin了



新建好的flutter plugin項(xiàng)目目錄


從圖中可以看到,完整的flutter plugin下面的目錄是android ios? lib以及一個(gè)之前命名的example的flutter項(xiàng)目

這幾個(gè)文件夾中,字面可以看出,android? ios分別是存放android跟ios代碼的,包括第三方控件,然后lib下面的dart文件則是我們對(duì)外開放的接口api,如下圖

對(duì)外api


那么基本的新建flutter plugin以及新建之后目錄的基本情況介紹完了,接下來則是在使用過程中踩的坑了



android下面的Plugin

這里是踩的第一個(gè)坑,其實(shí)也是自己沒注意,這邊是提供了兩種注冊(cè)的方法的,就是上圖中的兩個(gè)方法,因?yàn)橹翱吹奈恼拢械氖怯玫膔egisterWith這個(gè)方法進(jìn)行注冊(cè),當(dāng)時(shí)我沒注意,我也是在這個(gè)方法里面進(jìn)行取context,但是發(fā)現(xiàn)一直獲取不到并且報(bào)錯(cuò),找了很久沒找到原因,然后定下心來看代碼,發(fā)現(xiàn)兩個(gè)方法中間已經(jīng)給了清晰的注釋,那么怎么確定自己使用的是什么呢


兩種方法設(shè)置地方


如上圖,這邊可以查看兩種方法,我這邊默認(rèn)生成的是圖1的方法,因此我這邊也就使用這個(gè)方法了



調(diào)用api

一般來說,我們使用第三方控件sdk,都會(huì)需要進(jìn)行一個(gè)初始化,那么我這邊就以初始化為例了

如上圖,call.method 相當(dāng)于標(biāo)識(shí)符,該判定符與api一致,然后在這邊調(diào)用初始化的sdk,進(jìn)行初始化的操作


api

調(diào)用sdk初始化完成之后,在lib中的dart文件中開始寫api,如上圖,這樣一個(gè)完成的調(diào)用第三方sdk的flutter plugin就完成了


引用第三方sdk


導(dǎo)入第三方sdk


導(dǎo)入完成之后,是不是看上去已經(jīng)可以用了呢,其實(shí)不是,還需要一步,這一步實(shí)際上應(yīng)該是我們?cè)谑褂玫臅r(shí)候需要注意的


一定要注意,在使用的flutter項(xiàng)目中的androidManifest中加入xmlns:tools="http://schemas.android.com/tools"

tools:replace="label",這個(gè),要不然會(huì)報(bào)錯(cuò)

到此一個(gè)使用第三方sdk的flutter plugin就完全建立好了


然后說一下在這個(gè)過程中出現(xiàn)的另外一個(gè)問題,在這個(gè)plugin的android中,調(diào)用第三方sdk方法的時(shí)候,是沒有代碼提示的,需要自己寫,同樣的,包也需要自己手動(dòng)導(dǎo),因?yàn)闀簳r(shí)沒有找到人討論,這邊建議大家可以先用android直接新建一個(gè)項(xiàng)目使用這個(gè)三方sdk,然后直接把需要導(dǎo)的包復(fù)制過來,這樣比較方便快捷


大概就是這么多了,第一次寫,有不足多多見諒,希望能幫到正在入坑或者即將入坑flutter的朋友

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容