create static method

Future<FlutterBaseBannerRefined> create({
  1. required String channelNm,
  2. required String zoneId,
})

Implementation

static Future<FlutterBaseBannerRefined> create(
    {required String channelNm, required String zoneId}) async {
  var newInstance = FlutterBaseBannerRefined._internal(channelNm, zoneId);

  var handler = SingletonBannerCallbackHandler();
  handler.channelName = channelNm;

  handler.onLoadAdCallbacks[newInstance.key] = (adInfo) {
    if(adInfo != null) {
      final width = adInfo.loadedBannerAdSize!.width;
      final height = adInfo.loadedBannerAdSize!.height;
      newInstance._setLastLoadedNetworkName(adInfo.adNetworkName);
      newInstance._setBannerSize(width, height);
    }

    if (newInstance.onLoadAdCallback != null) {
      newInstance.onLoadAdCallback!(adInfo);
    }
  };

  handler.onFailAdCallbacks[newInstance.key] = (error) {
    if (newInstance.onFailAdCallback != null) {
      newInstance.onFailAdCallback!(error);
    }
  };

  handler.onClickAdCallbacks[newInstance.key] = (adInfo) {
    if (newInstance.onClickAdCallback != null) {
      newInstance.onClickAdCallback!(adInfo);
    }
  };

  handler.onRefreshPlatformViewCallbacks[newInstance.key] = () {
    if (newInstance._onRefreshPlatformViewCallback != null) {
      newInstance._onRefreshPlatformViewCallback!();
    }
  };

  await handler.methodChannel!.invokeMethod("makeAdView", {
    "key": newInstance.key,
    "zoneId": newInstance.zoneId,
  });

  return newInstance;
}