sendAttributes static method
Implementation
static Future<String?> sendAttributes(
String screenName,
Map<String, String> data,
) async {
try {
final result = await _channel.invokeMethod(
"sendAttributes",
{
"screenName": screenName,
"attributes": data,
},
);
latestError = null;
// iOS old SDK → bool
if (result is bool) {
if (!result) {
latestError = const ShieldError("0", "sendAttributes failed");
return null;
}
return await sessionId;
}
// Android new SDK → sessionId
return result?.toString();
} on PlatformException catch (e, s) {
_internalLog("sendAttributes failed", e, s);
latestError = ShieldError(
e.code,
e.message ?? e.details?.toString() ?? "Unknown error",
exception: e.details?.toString(),
);
return null;
} catch (e, s) {
_internalLog("sendAttributes failed", e, s);
latestError = ShieldError(
"0",
e.toString().isNotEmpty
? e.toString()
: (s.toString().isNotEmpty ? s.toString() : "Unknown error"),
);
return null;
}
}