docs: phase 3 iOS notes and simulator results; CHANGELOG for the iOS bridge

This commit is contained in:
CRTkafa 2026-10-10 05:29:59 +08:00
parent c6dd670f34
commit cd4147f719
2 changed files with 73 additions and 7 deletions

View file

@ -6,7 +6,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
## [Unreleased]
### Added (API design for 0.3.0; Android and iOS bridges not implemented yet)
### Added (API design for 0.3.0)
- `docs/design-0.3.md`: banner, native ad, impression data, placement, segment and dynamic user id design with the
exact LevelPlay 9.6.1 Android / iOS mappings, overlay positioning, error codes, Capacitor 7 findings, test plan.
- TypeScript API (`@since 0.3.0`): `getCapabilities`, `setSegment`, `setDynamicUserId`, `isPlacementCapped`,
@ -27,6 +27,17 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
- JVM unit tests for the overlay geometry and argument validation (`bun run verify:android`).
- `BannerSize` `CUSTOM` with `customSize`, `NativeAdTemplateStyle` fonts, banner ids in `LEVELPLAY_DEMO`.
### Added (iOS bridge for 0.3.0)
- Banners in a pass-through overlay inside the WebView: presets, `ADAPTIVE` (width in pt = CSS px, recreated when the
safe-area width changes), `CUSTOM` sizes, top / bottom / center with offsets, safe area, several banners by id, every
`banner*` event.
- Native ads with the plugin's `small` and `medium` templates built in code (`ISNativeAdView` binding; colours, corner
radius, system or web-asset fonts) and `nativeAd*` events.
- `impressionData` from per-ad delegates (with `conversionValue`), queued (max 100) until the first JS listener;
native impressions synthesised; `adInfoChanged`; `getCapabilities`, `setSegment`, `setDynamicUserId`,
`isPlacementCapped`, `getReward`; cleanup of banners and native ads when the plugin is released.
- `AdInfo` fields `ab`, `segmentName`, `encryptedCPM`, `creativeId`, `conversionValue`, `adSize` on iOS.
## [0.2.1] - 2026-10-10
### Changed