接入流程
一、按照穿山甲文檔,接入穿山甲Android sdk,配置gradle 文件等,保證Android代碼中可以調(diào)用穿山甲 sdk,并注冊
二、在Android端創(chuàng)建PlatformView ,PlatformViewFactory ,并在MainActivity中注冊TTAdViewFactory
三、在PlatformView 中 實(shí)現(xiàn)穿山甲廣告,并將廣告的view 加載在 LinearLayout上
四、在flutter 中通過 key 創(chuàng)建對應(yīng)的 AndroidView
ps:所以需要準(zhǔn)備的主要就是 flutter 調(diào)用Android 原生 view 的知識,以及flutter 與 native 之間互相調(diào)用的知識
廣告類型
這里只舉例 開屏廣告 和 插屏廣告
一、開屏廣告
開屏廣告是個全屏的廣告,所以在flutter 中當(dāng)做單獨(dú)頁面處理即可,并在廣告的各事件回調(diào)中通過MethodChannel.invokeMethod 將事件傳遞給flutter
二、插屏廣告
本人采用的是showDialog彈窗顯示,也可以使用OverlayEntry 等方式實(shí)現(xiàn)?;咎幚硗_屏廣告,只是載具不同
坑
1.廣告位相當(dāng)于一個webview,所以每次加載的時候會有延遲,可能出現(xiàn)白屏,可以使用占位圖站位,不過最好的方式應(yīng)該是通過提前加載,等到需要顯示的時候顯示即可。然而flutter 的機(jī)制好像并不能達(dá)到這樣的效果(不能像ios中一樣提前創(chuàng)建webview并加載,等到需要展示的時候再展示),如果將流程改為:調(diào)用廣告?zhèn)鬟f給Android,Android創(chuàng)建廣告并保存view,然后在需要的時候flutter 創(chuàng)建 platformview 加載廣告頁面.,有時會加載不出,報錯:BufferQueue has been abandoned
2.尚未確定,就是廣告雖然已經(jīng)接入并能正常加載與互動,但是從穿山甲平臺統(tǒng)計(jì)的數(shù)據(jù)來看完全沒有記錄。。。不知道是否是因?yàn)閺V告是測試版本導(dǎo)致。。。
關(guān)于以上兩個坑希望大拿幫忙解答