接入流程
一、按照穿山甲文档,接入穿山甲Android sdk,配置gradle 文件等,保证Android代码中可以调用穿山甲 sdk,并注册
二、在Android端创建PlatformView ,PlatformViewFactory ,并在MainActivity中注册TTAdViewFactory
三、在PlatformView 中 实现穿山甲广告,并将广告的view 加载在 LinearLayout上
四、在flutter 中通过 key 创建对应的 AndroidView
ps:所以需要准备的主要就是 flutter 调用Android 原生 view 的知识,以及flutter 与 native 之间互相调用的知识
广告类型
这里只举例 开屏广告 和 插屏广告
一、开屏广告
开屏广告是个全屏的广告,所以在flutter 中当做单独页面处理即可,并在广告的各事件回调中通过MethodChannel.invokeMethod 将事件传递给flutter
二、插屏广告
本人采用的是showDialog弹窗显示,也可以使用OverlayEntry 等方式实现。基本处理同开屏广告,只是载具不同
坑
1.广告位相当于一个webview,所以每次加载的时候会有延迟,可能出现白屏,可以使用占位图站位,不过最好的方式应该是通过提前加载,等到需要显示的时候显示即可。然而flutter 的机制好像并不能达到这样的效果(不能像ios中一样提前创建webview并加载,等到需要展示的时候再展示),如果将流程改为:调用广告传递给Android,Android创建广告并保存view,然后在需要的时候flutter 创建 platformview 加载广告页面.,有时会加载不出,报错:BufferQueue has been abandoned
2.尚未确定,就是广告虽然已经接入并能正常加载与互动,但是从穿山甲平台统计的数据来看完全没有记录。。。不知道是否是因为广告是测试版本导致。。。
关于以上两个坑希望大拿帮忙解答