🚀 快速开始
2.0: 对应 2.0.0 新契约。pub.dev 当前仍提供 1.0.3;依赖尚未升级时请切换到 1.x 文档。
初始化
Future<void> initializeAds(String appId) async {
await GromoreAds.initialize(
GromoreInitConfig(
appId: appId,
useMediation: true,
privacy: const GromorePrivacyConfig(
android: AndroidGromorePrivacyConfig(
canUseLocation: false,
canUsePhoneState: false,
canUseAppList: false,
),
ios: IosGromorePrivacyConfig(
canUseLocation: false,
forbiddenIdfa: true,
),
),
),
);
}appId 应由宿主专用配置读取,并与当前包名、Bundle ID 和签名在穿山甲平台的登记信息一致;是否纳入版本控制由宿主仓库策略决定。配置文件缺失或必填值为空时,应在调用 initialize() 前明确失败。
initializationState 明确区分 uninitialized、initializing、ready 和 failed。广告方法只能在 ready 后调用,否则抛出 GromoreException(code: 'AD_NOT_READY')。
相同配置的重复初始化返回同一个 Future。已经开始初始化后,修改 appId、useMediation 或其他初始化配置会抛出 INITIALIZATION_CONFIG_CONFLICT,原生层也会再次校验。
本地瀑布流配置
final config = GromoreInitConfig(
appId: appId,
localConfig: GromoreLocalConfig.asset('assets/SDK_Setting.json'),
);也可使用绝对文件路径或经过校验的 JSON object 字符串。公开 API 不接受裸 Map。
iOS 选项
IosGromoreOptions(
appLogoAsset: 'assets/app_logo.png',
allowModifyAudioSessionSetting: true,
audioSessionMode: IosAudioSessionMode.mix,
)另一平台的配置不会发送到原生层。