Skip to content

3.0.3

Latest

Choose a tag to compare

@mb-kyle-k mb-kyle-k released this 20 Oct 01:21
02073ea

Shoplive SDK for Flutter 3.0.3 is built on Shoplive Android SDK 3.0.3 and iOS SDK 3.0.3.

There is no Dart breaking change from 3.0.2. Update all three packages to the same version.

Highlights

  • Streamer web page. ShopliveStreamer.instance.start(campaignKey, webPageUrl: ...) shows a web page when the broadcaster swipes on the broadcast screen (Android and iOS). The URL must start with http:// or https:// and have a host. An invalid URL fails with INVALID_ARGUMENT before the broadcast screen opens. null keeps the 3.0.2 behavior.
  • PIP drag-out to close. New ShoplivePipOptions.isDragOutToCloseEnabled sets whether the in-app PIP window closes when it is dragged off the screen (Android and iOS). If you omit it, the current value stays (SDK default: true).
  • Player restart fix. start while a session is open (or after close) now opens a new player with the configuration of that call. Before, Android reused the previous player and ignored the new settings (for example, a live start after a preview session showed a black preview screen). iOS now also closes the current player and opens a new one. To change the campaign and keep the current settings, use play.
  • Same coupon / custom-action default on both platforms. If you omit alertType in respond, both platforms now use toast. Before, Android sent no value.

Changes

shoplive_core

  • ShopliveConfiguration.appVersion is deprecated and ignored. SDK 3.0.3 reads the app version itself. A warning is logged if you set it.
  • ShopliveError.rawCode is now set on both platforms.
  • Error code values are the SDK 3.0.3 constant names. Android 3.0.3 removed NOT_INITIALIZED_CONFIG and NOT_INITIALIZED_CAMPAIGN_KEY and added new codes (for example, AUTHENTICATION_FAILED and PIP_*). Treat code as an opaque string.

shoplive_player

  • Added ShoplivePipOptions.isDragOutToCloseEnabled. getConfiguration() returns it.
  • Fixed: start on an open session now applies the new configuration (see Highlights).
  • iOS: ShoplivePlayerType.preview also sets the SDK 3.0.3 ShoplivePlayerConfiguration.type.
  • Error events: rawCode is now always set on iOS. The event keys (code, message, rawCode, recoverable) are unchanged.
  • An omitted alertType now means toast on both platforms. The fallback result is unchanged (success: false, status: keep, alertType: toast).

shoplive_streamer

  • Added the named parameter webPageUrl to start.
  • Error events: rawCode is now always set on iOS.

Note

Existing calls to start still compile. But if your test double implements ShopliveStreamer and overrides start(String), change its signature to start(String campaignKey, {String? webPageUrl}).

Installation

dependencies:
  shoplive_player: 3.0.3      # player, includes shoplive_core
  # shoplive_streamer: 3.0.3  # broadcast, includes shoplive_core

Requirements

No change from 3.0.2.

Minimum
Flutter / Dart 3.22 / 3.4
Android Gradle Plugin / Gradle / JDK 8.7 / 8.9 / 17
Android minSdk / compileSdk 23 / 36
iOS 15.0 (Xcode with Swift 5.9 or later)

Upgrade notes

Android

  • The SDK 3.0.3 artifacts are only in https://sdk.shoplive.cloud/maven-repo (not in Maven Central). Keep the exclusiveContent rule for the cloud.shoplive group. The shoplive-media3 conflict of 3.0.2 no longer applies.

iOS

  • During pod install, the plugins download the iOS SDK 3.0.3 XCFrameworks and verify the new sha256 checksums. Run pod install (or flutter run) again after you update.

For the full list, refer to the CHANGELOG of each package: shoplive_core · shoplive_player · shoplive_streamer.

Links


Full Changelog: 3.0.2...3.0.3