JivoChat / JivoSDK-FlutterDemo

0 stars 0 forks source link

ClassCastException: java.lang.String cannot be cast to java.util.List #7

Open yauheniprakapenka opened 5 months ago

yauheniprakapenka commented 5 months ago

jivosdk_plugin: 0.9.2

Jivo.session.setCustomData throws exception:

_PlatformException (PlatformException(error, java.lang.String cannot be cast to java.util.List, null, java.lang.ClassCastException: java.lang.String cannot be cast to java.util.List at com.jivosite.jivosdkplugin.JivoPlugin.onMethodCall(JivoPlugin.kt:104) at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:267) at io.flutter.embedding.engine.dart.DartMessenger.invokeHandler(DartMessenger.java:292) at io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0$io-flutter-embedding-engine-dart-DartMessenger(DartMessenger.java:319) at io.flutter.embedding.engine.dart.DartMessenger$$ExternalSyntheticLambda0.run(Unknown Source:12) at android.os.Handler.handleCallback(Handler.java:883) at android.os.Handler.dispatchMessage(Handler.java:100) at android.os.Looper.loop(Looper.java:214) at android.app.ActivityThread.main(ActivityThread.java:7356) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930) ))

import 'package:flutter/material.dart';
import 'package:jivosdk_plugin/bridge.dart';

Future<void> main() async {
  runApp(const App());
}

class App extends StatelessWidget {
  const App({super.key});

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      home: HomePage(),
    );
  }
}

class HomePage extends StatelessWidget {
  const HomePage();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: const Center(
        child: Text(
          'JivoSDK Flutter Demo',
          textAlign: TextAlign.center,
        ),
      ),
      floatingActionButton: TextButton(
        onPressed: () async {
          await _setupJivo();
        },
        child: const Text('Chat'),
      ),
    );
  }

  Future<void> _setupJivo() async {
    await Jivo.session.setCustomData( [
      JVSessionCustomDataField('1', '2', '3', '4'),
    ]);
    await Jivo.session.setup(channelId: 'zzzzzzzz', userToken: '12345');
    await Jivo.display.present();
  }
}