init static method

void init(
  1. String apiKey, [
  2. String userId = '',
  3. String endpoint = ''
])

Implementation

static void init(String apiKey, [String userId = '', String endpoint = '']) {
  try {
    BasicMessageChannel<dynamic> channel =
    const BasicMessageChannel("plotline", JSONMessageCodec());
    channel.setMessageHandler((message) async {
      Map<String, dynamic> messageMap = message;
      plotlineDebugLog("Plotline Basic Message Channel: message received $message");
      switch (messageMap["method"]) {
        case "getAllElements":
          double pixRatio = double.parse(messageMap["pixelRatio"].toString());
          getAllElements(messageMap["listenerId"], pixRatio,
              messageMap["screenWidth"], messageMap["screenHeight"]);
          break;
        case "areViewsPresent":
          double pixRatio = double.parse(messageMap["pixelRatio"].toString());
          areViewsPresent(
              messageMap["listenerId"],
              messageMap["searchElements"],
              pixRatio,
              messageMap["screenWidth"],
              messageMap["screenHeight"]);
          break;
        case "getViewPosition":
          double pixRatio = double.parse(messageMap["pixelRatio"].toString());
          getViewPosition(
              messageMap["listenerId"],
              messageMap["clientElementId"],
              pixRatio,
              messageMap["screenWidth"],
              messageMap["screenHeight"]);
          break;
        case "setPlotlineEventsListener":
          try {
            _callback(messageMap["eventName"], messageMap["properties"]);
          } catch (e) {
            debugPrint("Error in passing Plotline Events: $e");
          }
          break;
        case "setPlotlineNotificationClickListener":
          try {
            _notificationClickListener(messageMap["customData"]);
          } catch (e) {
            debugPrint("Error in passing Plotline Notification Click Listener: $e");
          }
          break;
        case "setPlotlineRedirectListener":
          try {
            _redirectCallback(messageMap["properties"]);
          } catch (e) {
            debugPrint("Error in passing Plotline Redirect Listener: $e");
          }
          break;
        case "initSuccessfulCallback":
          try {
            _initSuccessfulCallback();
          } catch(e) {
            debugPrint("Error in passing initSuccessfulCallback: $e");
          }
          break;
        case "initFailureCallback":
          try {
            _initFailureCallback(messageMap["error"]);
          } catch(e) {
            debugPrint("Error in passing initSuccessfulCallback: $e");
          }
          break;
      }
    });

    if (endpoint.isNotEmpty) {
      plotlineChannel.invokeMethod('init', <String, dynamic>{
        'apiKey': apiKey,
        'userId': userId,
        'endpoint': endpoint
      });
    } else {
      plotlineChannel.invokeMethod('init', <String, dynamic>{
        'apiKey': apiKey,
        'userId': userId,
      });
    }
  } catch (e) {
    debugPrint("Error in init: $e");
  }
}