addButton static method
void
addButton(})
Inits SDK, connect to the script side and show Alan button
arguments:
projectId - projectId as written in embed code
section on the project page
authJson - initial variables formatted as json string
Implementation
static void addButton(String projectId,
{String? authJson,
String? server,
int buttonAlign = BUTTON_ALIGN_RIGHT,
int topMargin = 0,
int bottomMargin = 20}) async {
try {
await _channel.invokeMethod('addButton', <String, dynamic>{
"projectId": projectId,
"projectServer": server,
"projectAuthJson": authJson,
"buttonAlign": buttonAlign,
"topMargin": topMargin,
"bottomMargin": bottomMargin,
"wrapperVersion": PLUGIN_VERSION
});
} catch (e) {
print("Failed to add Alan button $e");
}
_callBackChannel.receiveBroadcastStream().listen((dynamic event) {
if (event is List) {
var method = event[0] as String;
switch (method) {
case "button_state_changed":
// ignore: deprecated_member_use_from_same_package
_handleButtonState(event[1]);
break;
case "command":
// ignore: deprecated_member_use_from_same_package
_handleCommand(event[1]);
break;
case "event":
// ignore: deprecated_member_use_from_same_package
_handleEvent(event[1], event[2]);
break;
case "onEvent":
_onEvent(event[1]);
break;
case "onButtonState":
_onButtonState(event[1]);
break;
case "onCommand":
_onCommand(event[1]);
break;
default:
print("Unknown event type $method");
}
} else {
print("Event is not a list, but $event");
}
}, onError: (dynamic error) {
print("Got error in callbacks: $error");
});
}