An event or community screen can offer a meeting join action and a workspace channel destination. DeeplinkX builds the actions; the provider controls authentication, membership, admission, and access to the destination.
Reusable Flutter example
import 'package:deeplink_x/deeplink_x.dart';
Future<bool> joinZoomMeeting({
required String meetingId,
String? password,
String? displayName,
}) {
final id = meetingId.trim();
if (id.isEmpty) return Future.value(false);
final cleanPassword = password?.trim();
final cleanDisplayName = displayName?.trim();
return DeeplinkX().launchAction(
Zoom.joinMeeting(
meetingId: id,
password: cleanPassword == null || cleanPassword.isEmpty
? null
: cleanPassword,
displayName: cleanDisplayName == null || cleanDisplayName.isEmpty
? null
: cleanDisplayName,
),
);
}
Future<bool> openSlackChannel({
required String teamId,
required String channelId,
}) {
final workspace = teamId.trim();
final channel = channelId.trim();
if (workspace.isEmpty || channel.isEmpty) return Future.value(false);
return DeeplinkX().launchAction(
Slack.openChannel(teamId: workspace, channelId: channel),
);
}
Show validation messages in the host UI so invalid input is distinguishable from a failed handoff.
Current example inputs and behavior
- Zoom meeting ID and password start empty; display name defaults to
DeeplinkX Guest. - The meeting field's
0000000000is a placeholder to replace before launching, not a working meeting. - Slack workspace and channel fields start empty.
T00000000andC00000000are placeholder formats, not working destinations. - Trim required fields. Reject an empty meeting ID or either missing Slack identifier. Convert empty optional password/display name to null.
- The screen prevents simultaneous launch requests and shows the final Boolean outcome.
Configuration and limits
- Consult the Zoom guide and Slack guide, plus the example Android manifest and iOS Info.plist.
- Use a real meeting or channel only when you have access. Do not publish private credentials or actual meeting passwords in the public hub.
- Use valid meeting IDs and a workspace/channel the user can access.
- A successful launch request does not establish that the user joined a meeting, was admitted, or viewed a channel. The destination app manages admission and channel access.
UI behavior
- Empty required values are rejected before constructing a launch request.
- Trimmed IDs reach
ZoomJoinMeetingActionandSlackOpenChannelAction. - Empty optional Zoom values become null; a supplied display name and password are preserved after trimming.
- Placeholder destinations are clearly labeled and never advertised as live demo access.
- Pending requests prevent repeat taps; failure feedback does not claim a network or permission diagnosis that the Boolean cannot provide.
Source code
All use cases · Sharing and messaging · Social support links